GMP operates on signed integers, rational numbers and floating point numbers.
There are no limits to the precision, except the ones that are implied by the available memory in the machine GMP runs on.
GMP has a rich set of functions, and the functions have a regular interface.
GMP is designed to be as fast as possible, both for small and huge operands. The speed is achieved by:
- Using full words as the basic arithmetic types
- Using fast algorithms with carefully optimized assembly code for the most common inner loops
- A general emphasis on speed (instead of simplicity or elegance)