Helmut Jarausch
e-mail: jarausch@igpm.rwth-aachen.de
Veröffentlichungen und Reports
Analyzing
Stationary and Periodic Solutions of Systems of Parabolic Partial
Differential Equations by Using Singular Subspaces as Reduced Basis,
Abstract
- Helmut Jarausch
Software
IGPMatrix stellt eine
Vektor/Matrix Bibliothek für C++ dar, die das Arbeiten mit
Vektoren und Matrizen mit ähnlicher Syntax wie in
Matlab oder SciLab erlaubt. Die Typen Matrix und Vector sind für die
Elementtypen double, complex, int und
bool definiert.
Auf Nachfrage
steht auch eine Version zur Verfügung, bei der die Elemente eine
einstellbare (im Prinzip beliebige) Genauigkeit
und/oder Intervallwerte haben.
Neben den elementaren Rechenoperation (auf Vektoren/Matrizen als
Ganzes) lassen sich Funktionen auf Vektoren/Matrizen anwenden.
Weiterhin kann man auf Teilvektoren/Teilmatrizen arbeiten und umgekehrt
können Vektoren und Matrizen aus Teilen zusammengesetzt
werden. Auch die (formatierte) Ein- und Ausgabe geschieht in einfacher
Weise ohne Schleifen.
Lineare Gleichungssysteme (bzw. Ausgleichsprobleme) lassen sich in
einfacher Weise mit Hilfe des Divisionsoperators lösen.
Die Lösung von A x = b erhält man durch x=
b/A . Darüberhinaus steht auch eine Funktion zur Berechnung der
Singulärwertzerlegung
und
zur Orthogonalisierung von (Spalten von) Matrizen zur Verfügung.
Alle Indizes beginnen bei 1 und die Matrizen werden intern so
gespeichert, dass sie ohne Kopieren an FORTRAN Bibliotheken
weitergereicht werden können; außerdem ist diese
Speicherung in manchen Fällen Cache-freundlicher.
Standardgemäß werden alle Indizes und Dimensionen zur
Laufzeit auf Gültigkeit überprüft, was in der Testphase
ein unschätzbarer
Vorteil ist. Zu diesem Zwecke kann man Vector-/Matrix-Variablen
auch mit Namen versehen, die noch zur Laufzeit bekannt
sind und die Interpretation von Fehlermeldungen erleichtern. Man kann
die IGPMatrix-Bibliothek durch einfaches Umsetzen
einer Präprozessorvariablen auch so übersetzen, dass alle
diese Laufzeittests entfallen.
Die IGPMatrix-Bibliothek verwaltet einen eigenen memory pool, um das
Erzeugen und Löschen von temporären Variablen
möglichst effizient zu gestalten.
Weitere Details entnehme man der ausführlichen Dokumentation
.
Diese Bibliothek steht (auch) in Quellform zur Verfügung, sie ist
unter die LGPL Lizenz
gestellt.
Die IGPMatrix-Bibliothek wurde erfolgreich unter Linux (ab gcc 3.0) und
mit Dev-C++ unter
Windows benutzt.
Unter Linux steht eine dynamische
Bibliothek , die Quelle
(samt Makefile) und ein kurzes Readme
zur Verfügung.
Unter Windows steht die Quelle
, der Headerfile und eine statische
Bibliothek für Dev-C++ und ein kurzes Readme
zur Verfügung.
Für Hinweise auf Fehler bin ich sehr dankbar, am besten per email .