The
GNU Multiple Precision Arithmetic Library (
GMP) is a
free library for
arbitrary-precision arithmetic, operating on signed
integers,
rational numbers, and
floating point numbers. There are no practical limits to the precision except the ones implied by the available
memory in the machine GMP runs on (operand dimension limit is 2
32-1 bits on 32-bit machines and 2
37 bits on 64-bit machines). GMP has a rich set of functions, and the functions have a regular interface. The basic interface is for
C but wrappers exist for other languages including
Ada,
C++,
C#,
OCaml,
Perl,
PHP,
Python,
Ruby and
R. In the past, the
Kaffe Java virtual machine used GMP to support Java built-in arbitrary precision arithmetic. This feature has been removed from recent releases, causing protests from people who claim that they used Kaffe solely for the speed benefits afforded by GMP. As a result, GMP support has been added to
GNU Classpath.