Przejdź do zawartości

GNU Multiple Precision Arithmetic Library

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez conversion script (dyskusja) o 13:05, 22 lis 2002. Może się ona znacząco różnić od aktualnej wersji.

GNU Multi-Precision 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 LGPL (wcześniej było to GPL)

Strona domowa projektu: http://swox.com/gmp/

Informacje techniczne:

  • biblioteka mieści się w -lgmp
  • najnowsza wersja (stan na maj 2002) to 4.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;
}