Interested in theory and design behind gmp

Wout de Zeeuw wout at
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>
To: "Wout de Zeeuw" <wout at>
Cc: <gmp-discuss at>
Sent: Wednesday, October 14, 2009 12:36 PM
Subject: Re: Interested in theory and design behind gmp

"Wout de Zeeuw" <wout at> 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 mailing list