Fonctions GMP
Introduction
Ces fonctions vous permettent de travailler avec des nombres de taille arbitraire, en utilisant la bibliothèque GNU MP.
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().
Si vous voulez explicitement spécifier un entier de grande taille, spécifiez-le sous forme de chaîne. Si vous ne le faites pas, PHP va interpréter votre entier et le transformer en une représentation interne, qui vous fera sûrement perdre de la précision, avant même que GMP n'entre en jeu.
Note: Cette extension est disponible sur les plates-formes Windows depuis PHP 5.1.0.
Pré-requis
Vous pouvez télécharger GMP sur le site de » https://www.swox.com/gmp/. Ce site propose aussi un manuel GMP.
Vous devez utiliser GMP 2 ou plus récent pour utiliser ces fonctions. Certaines d'entre elles peuvent requérir une version encore plus récente de GMP.
Installation
Pour pouvoir utiliser ces fonctions, vous devez compiler PHP GMP en utilisant l'option --with-gmp.
Configuration à l'exécution
Cette extension ne définit aucune directive de configuration.
Types de ressources
La plupart des fonctions GPM opère ou retourne des ressources GMP.
Constantes pré-définies
Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
Exemples
Example#1 Factorielle avec GMP
<?php
function fact($x)
{
$return = 1;
for ($i=2; $i < $x; $i++) {
$return = gmp_mul($return, $i);
}
return $return;
}
echo gmp_strval(fact(1000)) . "\n";
?>
Cet exemple va calculer factorielle de 1000 (un grand nombre) très vite.
Voir aussi
D'autres fonctions mathématiques sont disponibles avec les extensions Nombres de grande taille BCMath et Mathématiques.
Table of Contents
- 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 — Calcule le complémentaire d'un nombre
- 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 — Alias de gmp_div_q
- 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_nextprime — Trouve le prochain nombre premier
- 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_sqrtrem — Racine carrée avec reste GMP
- gmp_strval — Convertit un nombre GMP en chaîne
- gmp_sub — Soustraction de 2 nombres GMP
- gmp_testbit — Teste si un octet est défini
- gmp_xor — OU exclusif logique