2011-09-10 6 views
3

Je cherche une unité BigFloat rapide, qui peut traiter l'addition, la soustraction, la multiplication et la division (log serait bien mais pas nécessaire) et qui a une précision d'au moins 100 décimales des endroits. J'ai essayé l'unité this, mais elle est environ 1 000 fois plus lente que les opérations étendues standard. Alors, est-ce que quelqu'un connaît une unité BigFloat rapide (er) pour Delphi?Unité Fast BigFloat pour Delphi

Henry

+0

C'est en effet le premier hit sur Google en cherchant "delphi bigfloat". Avez-vous essayé les deuxième, troisième et quatrième aussi? – GolezTrol

+0

@GolezTrol Oui je l'ai fait. Le second contient un lien brisé, le troisième mène à une unité qui ne fonctionne pas pour moi et le quatrième est ce fil à stackoverflow.com. – Henry

+0

@David Heffernan Quel C lib dois-je prendre, comment puis-je lier via DLL et comment puis-je travailler avec Delphi? – Henry

Répondre

4

Pour résumer les commentaires à la question OP.

Une bibliothèque C est probablement la meilleure solution pour une grande bibliothèque à virgule flottante.

GMP prétend être la bibliothèque libre le plus rapide, optimisé avec l'assemblage et mis en place depuis 1991.

Utilisez this wrapper Delphi pour la bibliothèque GMP.

Pour une vitesse encore plus rapide avec un coût/effort raisonnable, une solution CUDA/GPU ferait l'affaire. Des travaux sont en cours, mais je n'ai pas trouvé de solution définitive.

+0

Merci, GMP pour Delphi est plus rapide que la librairie que j'utilisais auparavant, mais c'est toujours aussi lent que ça ... – Henry

2

à virgule flottante du logiciel est intrinsèquement 1 ou 2 ordres de grandeur plus lent que virgule flottante matériel. Ajoutez à cela le fait que vous recherchez une plus grande précision et que vous avez probablement un autre ordre de grandeur.

Vos attentes sont probablement irréalistes.

+0

En effet. Questions de taille. Les arithmétiques à virgule flottante sont plus rapides que les doubles. – GolezTrol

+0

@GolezTrol: Sauf Delphi-XE2-64bit. :-) –

+1

@Warren Pas vrai. Lisez le suivi d'Eric où il découvre '{$ EXCESSPRECISION OFF}'. –