Gibt es eine open-source c/c++ - Implementierung von IEEE-754-Operationen?
Ich bin auf der Suche nach einer Referenz-Implementierung von IEEE-754-Operationen. Gibt es so etwas?
- Meinst du mit "Referenz-Implementierung" im Sinne von "etwas, was ich kopieren kann, und sicher sein, es werden Recht", oder im Sinne von "etwas zur Verfügung gestellt von IEEE als nicht-normative Beschreibung der IEEE-754-standard in form von C++ - code"? Für die ehemaligen, sind Sie auf der Suche nach "software-floating-point-emulation", zum Beispiel hier ist eine Liste von GCC-s Funktionen: gcc.gnu.org/onlinedocs/gccint/Soft-float-library-routines.html
- Ich sollte hinzufügen, dass GCC, würde ich erwarten, dass es zu einer reinen C-Implementierung der Funktionen, die back-end-Autoren ersetzen kann mit Plattform-spezifischen code. Aber ich habe nicht wirklich geprüft.
- github.com/bobbl/float754 ist ein weiteres Projekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich, dass die C-Bibliotheken SoftFloat und fdlibm geeignet sind für das, was Sie suchen. Andere sind Linux (GNU-libc, glibc) oder *BSD-libc ist math-Funktionen. Schließlich CRlibm sollte auch für Sie von Interesse sein.
Ulrich Drepper hat eine interessante schauen Sie sich verschiedene mathematische Bibliotheken, das ist vielleicht auch lesenswert durch.
Ich muss Sie enttäuschen: Es gibt praktisch keine.
Während technisch gibt es IEEE-754-konformen Systemen, weil Sie
nicht implementiert nicht benötigte Funktionen in der standard -, Referenz
die Umsetzung ermöglicht
nicht vorhanden in der standard-Sprachen. Dies bewirkt, dass wiederkehrende leiden
von William Kahan, die treibende Kraft hinter der Norm und Ihre Anpassung
auf der Intel-Prozessoren.
Ich weiß nicht, ob es gibt einige esoterische Sprachen, die tun zu unterstützen,
aber ich kann ausschließen, Java, C#, C++, Fortran.
EDIT: Zwar gibt es einen Mangel an compiler-Unterstützung rate ich Hausers SoftFloat
die Umsetzung gegeben durch mctylr. Hauser weiß, was er tut.
http://portal.acm.org/citation.cfm?id=227699.227701&coll=portal&dl=ACM&CFID=77938829&CFTOKEN=18578907
Eine ziemlich verwirrende Frage; in C++ wird davon ausgegangen, diese Art von detail ist gesorgt, die durch hardware oder compiler. So, in C++ floating-point addition wäre
Ich bin sicher, dies ist nicht das, was Sie eigentlich gemeint; vielleicht würden Sie davon profitieren auf dieser Seite, das versucht, zu emulieren IEEE-754-konformen hardware-in javascript?
eine Arbeit um für Sie könnten python. python besitzt eine Funktion zur Konvertierung IEEE-754-32/64-bit-Präzision HEX-float-point
Können Sie entweder schreiben Sie app in python oder erstellen Sie einfach eine python-Funktion und rufen Sie es in C/C++
Ich bin mir nicht sicher, wie aufrufen von python aus C/C++, aber es ist möglich. Aufruf von Python-Funktionen aus C++