GMP (the GNU Multiple Precision Arithmetic Library) is a software library for arithmetic on signed numbers, rational numbers, and floating-point numbers with high precision. GMP is written partly in C and partly in Assembly, and is extremely optimised.