Przejdź do zawartości

GNU Multiple Precision Arithmetic Library

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez Sir Dagon (dyskusja | edycje) o 15:38, 28 lip 2006. Może się ona znacząco różnić od aktualnej wersji.

GNU Multiple Precision Arithmetic Library to biblioteka udostępniająca liczby całkowite oraz wymierne o nieograniczonej precyzji oraz liczby zmiennoprzecinkowe o ustalonej precyzji.

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;
}