DeltaProcessorArrayLib


Im Rahmen meines Prozessor Projektes und meines Mathematik – Projektes ALPHAcalc kam ich auf die Idee, über die heutige Prozessorgenauigkeit von 64bits hinaus, die Konstante α berechnen zu können.


Die Prozessorbittiefe erscheint mir nämlich für Kommazahlen etwas wenig zu sein.

Hier ein Beispiel, was mir während des Programmierens mit C#, dem .NET Framework 5.0, Visual Studio 2019 und einer 64bit – Rechnerumgebung aufgefallen ist:


Ich habe in einem Projekt meine α – Konstante, welche ich mit dem Windows – Calc berechnet habe eingegeben:


0.5804021608643457382953181272509


Während des debuggens und einer watch ist mir aufgefallen, dass die Variable nur noch folgenden Wert hatte:


0.58040216086434571


Es wird also mächtig geschnitten und nichteinmal gerundet !


Diese Genauigkeit von 17 Dezimalkommastellen ist mir definitiv zu wenig.

Ich möchte außerdem die Konstante auf beliebig viele Stellen z.B. iterativ berechnen.


Das geht.


Im Rahmen meines Prozessorprojektes war noch meine Aufgabe ausstehend, die Division für einen Prozessor zu implementieren. Das Grundkonzept samt Algorithmus hatte ich schon, jedoch nur noch nicht im Detail und getestet.

Ein Register soll über einen bool – Array realisiert werden. Dieses soll dann mit logischen Operationen verknüpft werden können.

Somit gibt es das Problem der beliebigen Genauigkeit weniger: Die Bittiefe wird einfach über die Größe der bool – Arrays festgelegt.


Die Array-Lib war geboren.


Library, da die Prozessoreinheiten programmatisch in einer Bibliothek anderen Hauptprogrammen zur Verfügung stehen soll. Zum Beispiel der Berechnung der α – Konstante- dem ALPHA-Calc – Projekt.




Hier das Resultat von rund zwei Wochen programmierarbeit.


Das bei weitem komplizierteste war die Divisions-Einheit: bool[] DeltaProcessorDeviceFließkommazahl(...)


Diese habe ich wie das handschriftliche Dividieren mit einem schnellen Algorithmus umgesetzt.

Es ist auch eine Intervallschachtelung mit dabei, welche die langwierigste Aufgabe des Algorithmuses darstellt.


Ich werde die Einheiten nicht näher beschreiben, da sie meiner Geheimhaltung unterliegen. Ich möchte ja immerhin noch das nCores – Unternehmen gründen...


Das folgende Bild zeigt die array-lib in Aktion, um ein Beispiel zu zeigen.




Man sieht, wie man mit der Bibliothek über Funktionen mathematisch rechnen kann.


Die Einheiten, vor allem die Divisionseinheit, sind für komplizierteste Anwendungsfälle getestet und funktionieren einwandfrei!


Die DeltaProcessorArrayLib lässt sich in jede .NET – Anwendung als assembly laden. Hier ein Beispiel mit dem Originalprojekt:




Hier die Bibliothek im Zusammenhang mit dem ALPHA-Calc- Projekt.


Der clue der Bibliothek ist die allgemeine Umsetzung für eine festlegbare Bittiefe.

Sie wird mit der statischen Methode init(int bitDepth) initialisiert.


Es hängt nicht mehr direkt vom eingesetzten Prozessor des Computersystems ab.



Manuel Hofmann

Rottweil, 19.08.2021