Interested in theory and design behind gmp
Wout de Zeeuw
wout at woutware.com
Thu Oct 15 02:34:26 CEST 2009
I want to thank everybody for giving me very useful pointers into this
field, this is very valuable as the field has been quite inaccessable so
far! I think I got good starting points to explore the matter further, this
is probably going to be a multi-year undertaking :-). I will also read Paul
Zimmerman's new "Modern Computer Arithmetic" book, this is a very nice
initiative for people that want to get a latest summary of current
techniques. Many books get outdated after a couple of years, so you end up
getting bits and pieces of information from many sources. A living document
that is updated regularly would be a great asset.
----- Original Message -----
From: "Torbjorn Granlund" <tg at gmplib.org>
To: "Wout de Zeeuw" <wout at woutware.com>
Cc: <gmp-discuss at gmplib.org>
Sent: Wednesday, October 14, 2009 12:36 PM
Subject: Re: Interested in theory and design behind gmp
"Wout de Zeeuw" <wout at woutware.com> writes:
I'm a programmer with a physics background and I have developed an
interest in the field of exact arithmetic. Thus I inevitably ended up
at the GMP library. But, my primary motive is gaining understanding of
the theory and design decisions on how to build multi-precision code,
and not using GMP or another component off the shelf. I want to gain
lower level knowledge to start building components in C# (or java). I
explicitly do not want to wrap GMP in some C# layer as hard
performance is not my motive. As a side product I want to document the
whole design/implementation process, so people could apply this on any
random platform (java, ruby, whatever).
With this in mind, I'm looking for ways to get familiar with the
subject. This could be books, or following courses at university, or
perhaps hiring somebody who is well at home at the subject to inject
know-how into my head. If anybody has advice or can offer me help on
this, do drop me a note!
There are several texts on this subject. You might start with the
algorithms chapter in the GMP manual. Knuth's Seminumerical Algorithms is
the standard text, but it is now a bit outdated. As a beginner's text
Knuth is still relevant, though.
The design/implementation process of GMP is difficult to describe. I
suppose it all started when I was a young boy as a
hack-all-night-you-can-sleep-when-you-get-old-project. It then slowly
was taken up by more and more projects, since it was fast and not as
buggy as much current software.
Careful testing has always been important in the GMP project. I library
like this that miscomputes this would not be very useful. Our testsuite
is today mainly used to catch compiler bugs. I bug in GMP and a bug in
the compiler used for compiling GMP will to the end user look the same.
More information about the gmp-discuss