Je cherche une bonne bibliothèque mathématique de précision arbitraire en C ou C++. Pourriez-vous me donner quelques conseils/suggestions?
Les exigences principales:
Voici ce que j'ai trouvé jusqu'à présent:
Ce que j'ai déjà su:
Ce que je ne sais pas:
Ce que j'apprécie:
S'il vous plaît NE PAS répondez à cette question si:
GMP est le choix populaire. Squeak Smalltalk a une très belle bibliothèque, mais elle est écrite en Smalltalk.
Vous avez demandé des livres ou des articles pertinents. La partie délicate des bignums est la longue division. Je recommande l'article de Per Brinch Hansen Division de plusieurs longueurs revisitée: une visite du champ de mines .
Dans l'ensemble, la bibliothèque de précision arbitraire à usage général la plus rapide est GMP . Si vous souhaitez travailler avec des valeurs à virgule flottante, consultez la bibliothèque MPFR . MPFR est basé sur GMP.
En ce qui concerne la prise en charge de la précision arbitraire native dans d'autres langues, Python utilise sa propre implémentation pour des raisons de licence, de taille de code et de portabilité du code. Le GMPY le module permet à Python d'accéder à la bibliothèque GMP.
casevh
Voir http://ttmath.org
Petite bibliothèque de modèles uniquement en-tête pour une utilisation personnelle et commerciale gratuite.
Je n'ai pas comparé les bibliothèques arithmétiques de précision arbitraire les unes aux autres moi-même, mais les gens qui semblent s'être plus ou moins uniformément installés sur GMP. Pour ce que ça vaut, les entiers de précision arbitraires dans GHC Haskell et GNU Guile Scheme sont tous deux implémentés en utilisant GMP, et la mise en œuvre la plus rapide du benchmark pidigits sur la fusillade de langue est basé sur GMP.
Et Pari? Il est construit sur GMP et fournit tous les autres avantages sur les opérations de théorie des nombres dont vous aurez besoin (et de nombreuses choses de calcul symbolique).