[[Vorlage(Archiviert)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Programme_kompilieren: Pakete aus dem Quellcode erstellen] }}} Möchte man in C++ mathematische Probleme lösen, so gibt es eine Fülle an Bibliotheken, die man nutzen kann. Vor allem das [http://www.netlib.org/ Netlib Repository] {en} ist eine sehr gute Anlaufstelle für erste Informationen. Der Nachteil der meisten der dort erhältlichen Libaries wie z.B. [http://www.netlib.org/clapack/index.html CLAPACK] {en} ist, dass sie veraltet sind oder zumindest nicht mehr weiter entwickelt werden. Daher gibt es das Projekt [http://lapackpp.sourceforge.net/ Lapack++] {en} . Es basiert auf [http://www.netlib.org/lapack++/index.html lapack++] {en} , was später in [http://math.nist.gov/tnt/ TNT] {en} übergehen sollte, aber nie richtig veröffentlicht wurde. Der Entwickler [http://www.cstim.de/ Christian Stimming] {de} dachte sich damals, dass es hier etwas aktuelleres geben muss. Wie die meisten anderen mathematischen Bibliotheken basiert Lapack++ auf den beiden Fortran Bibliotheken [http://www.netlib.org/blas/index.html BLAS] {en} und [http://www.netlib.org/lapack/index.html LAPACK] {en} , die durch einen Wrapper namens [http://www.netlib.org/f2c/index.html f2c] {en} von Fortran in C-Code umgeformt wird. Eine Alternative zu Lapack++ ist [http://itpp.sourceforge.net/ IT++] {en} was aber im Gegensatz zu Lapack++ unter der [wikipedia:GNU_General_Public_License: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 [wikipedia:GNU_Lesser_General_Public_License:LGPL] veröffentlicht und kann daher bei der reinen Benutzung der Bibliotheken auch für nicht quelloffene Projekte benutzt werden = Installation = Für die Installation muss man sich die Lapack++-Bibliothek selbst kompilieren [4]. Die Quellen kann man auf [http://sourceforge.net/project/showfiles.php?group_id=99696 dieser Seite] {en} 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. = Benutzung = In C++ Programmen kann man nun wie gewohnt die Header-Dateien mit {{{#include }}} einbinden. Die Library, die man hinzufügen muss, heißt '''lapackpp'''. {{{#!vorlage Warnung 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. }}} == Problemlösung == 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 {{{#!vorlage Befehl sudo ldconfig }}} die Umgebungsvariablen für den Library-Pfad neu einlesen. = Links = * [http://lapackpp.sourceforge.net/ Lapack++] {en} - Dokumentation und Informationen ---- # tag: Bildung, Lernen, Mathematik