GNU Multiple Precision Arithmetic Library
Z Wikipedii
GNU Multiple Precision Arithmetic Library to biblioteka udostępniająca liczby całkowite oraz wymierne o nieograniczonej precyzji oraz liczby zmiennoprzecinkowe o ustalonej precyzji. Pierwsza wersja biblioteki pojawiła się w 1991r. Są też dostępne bindingi dla C++, Perla, Pythona, oraz niekompletny dla Ruby.
GMP jest używana przez wiele programów, między innymi przez Kaffe.
Biblioteka jest dostępna na licencji LGPL (wcześniej była to GPL).
Strona domowa projektu: http://swox.com/gmp/
Informacje techniczne:
- biblioteka mieści się w -lgmp
- najnowsza wersja (stan na lipiec 2006) to 4.2.1
- dokumentacja
- pakiety Debiana to libgmp3 (biblioteka), libgmp3-dev (nagłówki) oraz libgmp3-doc (dokumentacja). Z przyczyn historycznych używany jest numer 3, chociaż w rzeczywistości używana jest wersja 4.x.
Przykładowy kod:
#include <stdio.h> #include <stdlib.h> #include <gmp.h> int main(int argc, char **argv) { mpz_t m; int n; if (argc < 3) { fprintf (stderr, "Usage: %s <base> <power>\n", argv[0]); return 1; } mpz_init (m); mpz_set_str (m, argv[1], 10); n = atoi (argv[2]); mpz_pow_ui (m, m, n); printf ("%s^%s = %s\n", argv[1], argv[2], mpz_get_str (0, 10, m)); return 0; }