Quadruple 128 bit Floating Point Library 1.0

Lizenz: kostenlos ‎Dateigröße: 83.97 KB
‎Benutzerbewertung: 2.3/5 - ‎9 ‎Stimmen

Signierte 128-Bit-Gleitkomma-Datentypbibliothek mit 64 effektiven Präzisionsbits (im Vergleich zu 53 für den integrierten Double-Typ) und einem 64-Bit-Exponenten (vs. 11 für Doubles). Mit größerer Präzision und viel größerer Reichweite sind Quads besonders nützlich, wenn es um sehr große oder sehr kleine Werte geht, wie z. B. bei probabilistischen Modellen. Die Annahme einer größeren festen Genauigkeit anstelle eines beliebigen Präzisionstyps (z. B. BigDecimal von Java) bedeutet, dass die Strafe zwar immer noch langsamer als die eingebaute Arithmetik ist, die Strafe aber nur eine Größenordnung oder weniger beträgt und daher in vielen mathematisch-lastigen Anwendungen immer noch möglich ist. Auf einem Intel Core i5-2410M-Laptop dauert beispielsweise eine Milliarde Multiplikationen 17 Sekunden mit Double-Werten, 135 Sekunden mit Quad-Werten mit dem überladenen * Operator und nur 76 Sekunden mit der Multiply()-Methode (der höhere Overhead von * ist auf die schlechte Inlining-Logik des .Net Compilers/JIT-Optimierers zurückzuführen). Im Vergleich dazu dauert die häufig verwendete Problemumgehung für Multiplikationsunter- und -überlauf, die Logarithmen summiert, 130 Sekunden. Quads sind nicht nur schneller und präziser als die Protokollarithmetik, sondern vereinfachen auch den Code, indem es nicht mehr die Notwendigkeit enthält, sich zu merken, welche Variablen log'd sind, und immer wieder in log''d-Werte konvertiert werden. Die Quadruple-Bibliothek ist in C-Code (Quellcode enthalten) geschrieben und zielt auf .Net 4.0; Es sollte auch leicht auf .Net 2.0 und ähnliche Sprachen (wie Java) mit einfachen Modifikationen übertragbar sein.

VERSIONSVERLAUF

  • Version 1.0 veröffentlicht auf 2011-06-15
    Erstveröffentlichung

Programmdetails