XXXVI. GMP

Ces fonctions vous permettent de travailler avec des nombres de taille arbitraire, en utilisant la librairie GNU MP. Pour pouvoir y accéder, vous devez compiler PHP avec le support GMP en utilisant l'option --with-gmp.

Vous pouvez télécharger GMP sur le site de http://www.swox.com/gmp/. Ce site propose aussi un manuel GMP.

Vous devez utiliser GMP version 2 ou plus récent pour utiliser ces fonctions. Certaines d'entre elles peuvent requérir une version encore plus récente de GMP.

Ces fonctions ont été ajoutées en PHP 4.0.4.

Note : La majorité des fonctions GMP acceptent des nombres GMP comme arguments, définis ci-dessous comme resource. Cependant, la plupart de ces fonctions acceptent aussi des nombres et des chaînes à partir du moment où on peut les convertir en nombre. Si une fonction utilisant les entiers est plus rapide, elle sera automatiquement appelée si les arguments fournis sont des entiers. Cela se fait de manière transparente : vous pouvez donc utiliser des entiers avec les fonctions GMP sans perte de vitesse.

Voir aussi gmp_init().

Exemple 1. Factorielle avec GMP

<?php
function fact($x) {
  if($x <= 1)
        return 1;
  else
        return gmp_mul($x,fact($x-1));
}
print gmp_strval(fact(1000))."\n";
?>
Cet exemple va calculer factorielle de 1000 (un plutôt grand nombre) très vite.

Table des matières
gmp_abs -- Valeur absolue GMP
gmp_add -- Addition de 2 nombres GMP
gmp_and -- ET logique
gmp_clrbit -- Annule un bit
gmp_cmp -- Compare des nombres GMP
gmp_com -- Calculates one's complement of a
gmp_div_q -- Divisions de 2 nombres GMP
gmp_div_qr -- Divise deux nombres GMP
gmp_div_r -- Reste de la division de deux nombres GMP
gmp_div -- Divise deux nombres GMP
gmp_divexact -- Division exacte de nombres GMP
gmp_fact -- Factorielle GMP
gmp_gcd -- PGCD
gmp_gcdext -- PGCD étendu
gmp_hamdist -- Distance de Hamming
gmp_init -- Crée un nombre GMP
gmp_intval -- Convertit un nombre GMP en entier.
gmp_invert -- Inverse modulo
gmp_jacobi -- Symbole de Jacobi
gmp_legendre -- Symbole de Legendre
gmp_mod -- Modulo GMP
gmp_mul -- Multiplication de 2 nombres GMP
gmp_neg -- Opposé de nombre GMP
gmp_or -- OU logique
gmp_perfect_square -- Carré parfait GMP
gmp_popcount -- Compte de population
gmp_pow -- Puissance
gmp_powm -- Puissance et modulo
gmp_prob_prime -- Nombre GMP probablement premier
gmp_random -- Nombre GMP aléatoire
gmp_scan0 -- Recherche 0
gmp_scan1 -- Recherche 1
gmp_setbit -- Modifie un bit
gmp_sign -- Signe du nombre GMP
gmp_sqrt -- Racine carrée GMP
gmp_sqrtrm -- Racine carrée avec reste GMP
gmp_strval -- Convertit un nombre GMP en chaîne
gmp_sub -- Soustraction de 2 nombres GMP
gmp_xor -- OU exclusif logique