Przejdź do zawartości

GNU Multiple Precision Arithmetic Library

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez Taw (dyskusja | edycje) o 17:58, 25 maj 2002. Może się ona znacząco różnić od aktualnej wersji.
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

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 niepełny 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;

}