Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Möchte man in C++ mathematische Probleme lösen, so gibt es eine Fülle an Bibliotheken, die man nutzen kann. Vor allem das Netlib Repository 🇬🇧 ist eine sehr gute Anlaufstelle für erste Informationen. Der Nachteil der meisten der dort erhältlichen Libaries wie z.B. CLAPACK 🇬🇧 ist, dass sie veraltet sind oder zumindest nicht mehr weiter entwickelt werden.
Daher gibt es das Projekt Lapack++ 🇬🇧 . Es basiert auf lapack++ 🇬🇧 , was später in TNT 🇬🇧 übergehen sollte, aber nie richtig veröffentlicht wurde. Der Entwickler Christian Stimming 🇩🇪 dachte sich damals, dass es hier etwas aktuelleres geben muss. Wie die meisten anderen mathematischen Bibliotheken basiert Lapack++ auf den beiden Fortran Bibliotheken BLAS 🇬🇧 und LAPACK 🇬🇧 , die durch einen Wrapper namens f2c 🇬🇧 von Fortran in C-Code umgeformt wird.
Eine Alternative zu Lapack++ ist IT++ 🇬🇧 was aber im Gegensatz zu Lapack++ unter der GPL steht. Was eigentlich großartig klingt, ist z.B. für Firmen nicht geeignet, da sie den Quellcode ihrer Projekte nicht offenlegen können. Lapack++ dagegen wird unter der LGPL veröffentlicht und kann daher bei der reinen Benutzung der Bibliotheken auch für nicht quelloffene Projekte benutzt werden
Für die Installation muss man sich die Lapack++-Bibliothek selbst kompilieren [4]. Die Quellen kann man auf dieser Seite 🇬🇧 herunterladen. Vorher müssen neben den unter [5] genannten Paketen noch die o.g. Fortran-Bibliotheken
lapack3-dev
refblas3-dev
atlas3-base-dev (universe, [2])
installiert werden [1], bei der auch der Fortran-Compiler g77 mit installiert wird.
In C++ Programmen kann man nun wie gewohnt die Header-Dateien mit
#include <lapackpp/name.h>
einbinden. Die Library, die man hinzufügen muss, heißt lapackpp.
Manche Teile der Klassen sind noch aus Original lapack++ 1.0 von 1998. Dementsprechend können diese auch noch fehlerhaft sein. Alle Dateien, die undokumentiert sind, sind ungetestet.
Wenn man das Programm nach /usr/local installiert hat (was Standard ist), werden die Bibliotheken wahrscheinlich nicht gefunden:
./lapack: error while loading shared libraries: liblapackpp.so.1: cannot open shared object file: No such file or directory
Abhilfe schafft hier die Bearbeitung (bzw. Erstellung) der Datei /etc/ld.so.conf in einem Editor mit Root-Rechten [4]. Man fügt einfach den Installationspfad der Library
/usr/local/lib
in die Datei ein und speichert das ganze. Danach muss man noch im Terminal [3] mit
sudo ldconfig
die Umgebungsvariablen für den Library-Pfad neu einlesen.
Lapack++ 🇬🇧 - Dokumentation und Informationen