LinearAlgebra UDF - LinearAlgebra für AutoIt mit BLAS/LAPACK

  • Lineare Algebra in AutoIt

    Eine Bibliothek zur linearen Algebra, entwickelt in AutoIt. Diese Bibliothek bietet eine Vielzahl von Funktionen zur Durchführung von Berechnungen und Operationen in der linearen Algebra.

    Idee

    Eine UDF zur Linearen Algebra in AutoIt.
    Ziel dieser ist es möglichst thematisch umfassend, performant und einfach zugänglich zu sein.

    Als Grundlage der UDF dient die weit verbreitete Softwarebibliothek BLAS/LAPACK.
    Der Nutzer soll bei der Verwendung möglichst intuitiv arbeiten können und ohne größere adminstrative Aufwände auskommen.

    Ein besonderer Schwerpunkt liegt in umfangreichen Funktionalitäten zur Ausgleichungsrechnung.

    Aufbau

    Die UDF ist in 3 Teil-UDFs untergliedert: BLAS.au3, LAPACK.au3 sowie LinearAlgebra.au3.
    In den ersten beiden sind die Low-Level-Schnittstellen zu den jeweiligen BLAS/LAPACK-Funktionalitäten implementiert.
    Auf dieser Basis baut die LinearAlgebra.au3 auf, welche als primäre Schnittstelle für den Endanwender gedacht ist.
    Die Funktionen hier bieten einfacherere Schnittstellen und Zugang zu komplexeren Algorithmen wie z.B. Regressionen und Ausgleichungsrechnung.

    Neben diesen 3 Dateien wird zusätzlich noch eine DLL benötigt, welche die BLAS/LAPACK-Schnittstelle implementiert.

    Einrichtung

    • Download der 3 Dateien `BLAS.au3`, `LAPACK.au3` sowie `LinearAlgebra.au3` (oder gleich clone des Repositories) von >>Hier<<
    • Download einer aktuellen BLAS/LAPACK-DLL:
      • Empfehlung: OpenBLAS (theoretisch sollten auch andere BLAS/LAPACK-Implementierungen funktionieren - jedoch sind dann evtl. zusätzliche Anpassungen notwendig)
      • Download der Datei OpenBLAS-x.x.xx-x64.zip und Extraktion der Datei libopenblas.dll in den selben Ordner wie die LinearAlgebra.au3
    • Nun sollten die Beispieldateien im Unterordner /examples ausführbar sein.

    Umfang

    Dokumentation
    Die Dokumentation zu den einzelnen Funktionen ist direkt im Quellcode enthalten. Jede Funktion ist mit einer Beschreibung versehen, die ihre Parameter und Rückgabewerte erklärt. In den meisten Fällen ist hier auch ein kurzes Beispiel mit hinterlegt. Zudem findest du detaillierte Erklärungen in den Beispieldateien.


    ToDo

    • Bestimmte Funktionen (z.b. _la_add(), _la_mul(), _la_solve(), _la_inverse() ...) sind derzeit für den allgemeinen Fall implementiert. Diese profitieren jedoch entsprechend, wenn die spezifischen Funktionen für spezielle Matrixgeometrien (symmetrische Matrizen, Dreiecksmatrizen, Bandmatrizen, ...) jeweils verwendet würden. Die hierfür notwendigen Grundfunktionen sind bereits in der BLAS.au3 und LAPACK.au3 implementiert.