C'est un module optionnel. Il n'est disponible que si Python est configuré
pour l'inclure, ce qui nécessite que la librairie GNU MP soit installée.
Ce module implémente l'interface avec une partie de la librairie GNU MP,
qui définit des routines d'arithmétique des entiers de précision arbitraire
et des nombres rationnels. Seules les interfaces vers les routines
entières(mpz_*()) sont fournies. Sauf indication
contraire, la description de la documentation GNU MP s'applique.
Le support pour les nombres rationnels peut être
implémenté en Python. Pour un exemple, voir le module
Rat, fourni dans
Demos/classes/Rat.py dans la distribution source de Python.
En général, les nombres mpz peuvent être utilisés exactement comme les
autres nombres Python standard ; par exemple, vous pouvez utiliser les
opérateurs intégré comme Vous créez un nombre mpz en appelant la fonction mpz() (voir
ci-dessous pour une description exacte). Un nombre mpz est imprimé ainsi :
Un certain nombre de fonctions supplémentaires sont définies dans ce
module. Les arguments non-mpz sont d'abord convertis en valeurs mpz, et les
fonctions retournent des nombres mpz.
Un nombre mpz possède une méthode:
Le nombre mpz doit avoir une valeur supérieure ou égale à zéro,
sinon ValueError sera déclenchée.
+, *, etc., de même que les fonctions
intégrées standard comme abs(), int(), ...,
divmod(), pow(). N.B.: l'opération
bitwise-xor a été implémentée en assemblant des ands, des
inverts et des ors, parce que la librairie ne dispose pas
d'une fonction mpz_xor(), et que je n'en avais pas besoin.
mpz(value).
mpz(valeur)
MPZType
powm(base, exposant, modulo)
pow(base, exposant) % modulo. Si
exposant == 0, retourne mpz(1). Contrairement à la
fonction de la librairie C, cette version peut traiter les exposants
négatifs.
gcd(op1, op2)
gcdext(a, b)
(g, s, t), tel que
a*s + b*t == g == gcd(a, b).
sqrt(op)
sqrtrem(op)
(racine, reste), tel que
racine*racine + reste == op.
divm(numerateur, denominateur, modulo)
q * denominateur % modulo ==
numerateur. On pourrait aussi implémenter cette fonction en
Python, en utilisant gcdext().
mpzbinary()