Ich arbeite in der Berechnung von reellen Zahlen und ich wünschte, ich wüsste die reale Antwort. Aber ich kann spekulieren. Es ist ein soziologisches Problem, denke ich.
Die Community der Leute, die an exakten reellen Arithmetikern arbeiten, besteht aus Theoretikern, die nicht daran gewöhnt sind, Software zu entwickeln. Daher geben sie die Implementierungsaufgabe in der Regel an die Schüler ab (eine bemerkenswerte Ausnahme ist Norbert Müllers iRRAM ), oder sie haben ihre eigenen Spielzeugimplementierungen .
Leute , die tun die notwendige Programmierung haben Mojo nicht über die notwendigen theoretischen Hintergrund haben. Ohne eine solide theoretische Grundlage ist es schwierig, eine exakte echte Arithmetik korrekt zu entwerfen. Zum Beispiel ist es ein Fehler, viele reelle Zahlen in eine for
Schleife einzufügen, da Sie aufgrund von Genauigkeitsverlusten eine inakzeptable Leistung erzielen. Wenn Sie viele, viele Realwerte hinzufügen möchten, sollten Sie dies mit einer baumartigen Struktur tun, wobei die Größen der Teilsummen berücksichtigt werden. Eine andere Sache , die nur schwer zu vermitteln ist , dass <
und =
wie Gesamt Boolesche Funktion auf den reellen Zahlen einfach nicht existieren (Sie können haben , =
aber es entweder zurückkehrt false
oder divergiert, und <
divergiert , wenn zwei gleich reellen Zahlen angegeben).
Schließlich ist es überhaupt nicht klar, wie man Bibliotheken für exakte echte Arithmetik implementiert. Es sind nicht die üblichen Bibliotheksbestandteile, die lediglich einige Datentypen und einige Funktionen definieren. Oft erfordert eine exakte echte Arithmetik spezielle Steuerungsmodi. Zum Beispiel übernimmt iRRAM die Hauptausführung des Programms (buchstäblich Hijacks main
) sowie die Standardeingabe und -ausgabe, so dass es das Programm bei einem Genauigkeitsverlust erneut ausführen kann. Meine Bibliothek für echte Arithmetik in Haskell besteht aus einer Staged
Monade (die im Wesentlichen die Reader
Monade ist). Die meisten Leute erwarten, dass die reellen Zahlen "nur ein anderer Datentyp" sind, aber ich habe meine Zweifel daran.