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 .

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