Homepage
Versicherungen
Physik
Programmiertools
Photogalerie
Anbieterinfos


Noch Baustelle!


Fließkommazahlen, die intern nur
mit Integer-Brüchen arbeitet

Die heutigen Fließkommatypen Single und Double (oder sonstige, die ja alle intern nach dem selben Schema arbeiten), haben schon immer mein persönliches Empfinden gestört. Ich habe schon immer das Rechnen mit Bruchzahlen dem Rechnen mit Kommazahlen vorgezogen. Aus diesem Grund habe ich irgendwann beschlossen ein Tool zu entwickeln, daß intern nur mit Integern in Form von Brüchen arbeitet, und das mindestens ebenso genau rechnet, wie die üblichen Fließkommatypen.

Dabei fand ich heraus, daß an der entscheidenden Stelle der Computermathematik mit Zahlen fester Länge, nämlich dem approximieren eines intern exakt gerechneten doppeltlangen Zwischenergebnisses einer Grundrechenoperation hin zu einem darstellbaren einfachlangem Ergebnis, die Bruchrechnung ganz neue Möglichkeiten eröffnet. Ich fand einen Algorithmus, der mathematisch optimal ist in Hinblick auf die Minimierung des dabei zwangsläufig auftretenden Restfehlers (Rundungsfehler). Leider ist er so aufwendig, das die entsprechende Routine vergleichsweise a...langsam arbeitet. Denoch hat mich diese Erkenntnis so fasziniert, das ich gerade eine entsprechende Unit entwickle. Und jetzt die schlechten Nachrichten:
  • Ich werde den Algorithmus und den Code nicht verraten. Stattdessen werde ich nur mein Tool, wenn es lauffähig ist, als Laufzeitbibliothek zum Download anbieten. Für die Nutzung werde ich keine Begrenzung festlegen, d.h. jeder wird es in seiner unveränderten Form für jeden Zweck, auch kommerziell, einsetzen dürfen, aber wer den Algorithmus wissen will, (zum Beispiel um das ganze in Hardware zu implementieren, was sehr viel Sinn machen würde) muß mir Lizenzgebühr zahlen. Was das angeht bin ich relativ unbescheiden.
  • Ich hatte das Tool schon mal lauffähig, die ersten Ergebnisse waren großartig, und dann habe ich mich für eine umfangreiche Neukonzeption entschieden, u.a. mit dezimalen Exponenten (von 10E-999 bis 10E+999) und nun ... na ja. Es dauert noch eine Weile, seufz.
  • Zur Zeit bin ich erheblich mit anderem beschäftigt. Es dauert also sogar noch länger als eben gesagt.
Und jetzt noch zur Info:  Als ehemaliger Turbo-Pascaler mache ich weder mit C (uuaää, igiiitt), noch irgendwelchem anderen neumodischen Zeug herum (auch wenn einige von denen ja ganz gut sein sollen). Ich selbst programmiere inzwischen in Freepascal, das Laufzeitbilbliotheken für Windows, Linux und wohl noch für einige andere Plattformen erzeugen kann.

Und dies ist schließlich die Fußzeile
;-)