Die Klasse CMatrix stellt eine voll funktionsfähige Matrix-Klasse zur Verfügung. Die meisten Funktionen sollten selbsterklärend sein.
Headerdatei: | matrix.hh |
Implementationsdatei: | matrix.cc |
Erzeugt ein CMatrix-Objekt. Die Variable aVector bekommt den Wert NULL zugewiesen und zeigt somit auf keinen gültigen Speicherbereich.
Erzeugt ein CMatrix-Objekt. Die Matrix hat die Größe height Zeilen auf width Spalten.
Erzeugt ein CMatrix-Objekt. Das Objekt ist identisch zur übergebenen Matrix A.
Zerstört das CMatrix-Objekt.
Allokiert den Speicher für das bestehende CMatrix-Objekt neu. Die Matrix hat dann height Zeilen und width Spalten.
Gibt den durch das CMatrix-Objekt allokierten Speicher wieder frei.
Löscht den Inhalt der Matrix. Im Gegensatz zur Free() wird hier jedes Element der Matrix auf 0 gesetzt, der allokierte Speicher jedoch bleibt erhalten.
Liefert die Spaltenanzahl der Matrix.
Liefert die Zeilenanzahl der Matrix.
Vertauscht Zeile i mit Zeile j innerhalb der Matrix.
Erzeugt eine Einheitsmatrix der Größe n x n. Bedingung hierfür ist, daß ein Objekt vom Typ CTemplate als natürliche Zahl darstellbar ist.
Führt eine Fehlerkorrektur durch. Jeder Wert x der der Matrix wird auf 0 gesetzt, sobald der Betrag von x kleiner als der der Funktion Epsilon übergebene Wert e ist.
Liefert die zu A transponierte Matrix zurück. Die Matrix A bleibt dabei unverändert.
Transponiert die Matrix.
Liefert eine Referenz auf die i-te Zeile der Matrix als CVector-Objekt.
Kopiert das durch A übergebene CMatrix-Objekt.
Addiert zwei Matrizen komponentenweise.
Subtrahiert zwei Matrizen komponentenweise.
Multipliziert zwei Matrizen.
Multipliziert eine Matrix mit einem Vektor. Die Multiplikation hat die Form A*b, wobei A eine n x m Matrix ist und b ein Spaltenvektor mit m Zeilen.
Multipliziert einen Vektor mit einer Matrix. Die Multiplikation hat die Form b*A, wobei A eine n x m Matrix ist und b ein Spaltenvektor mit n Zeilen.
Addiert zum CMatrix-Objekt eine andere Matrix komponentenweise.
Subtrahiert vom CMatrix-Objekt eine andere Matrix komponentenweise.
Multipliziert das CMatrix-Objekt mit einer Matrix .
Dividiert ein CMatrix-Objekt durch ein Objekt vom Typ CTemplate, d.h. jedes Element der Matrix wird durch das CTemplate-Objekt dividiert.
Multipliziert ein CMatrix-Objekt mit einem Objekt vom Typ CTemplate, d.h. jedes Element der Matrix wird mit dem CTemplate-Objekt multipliziert.
Dividiert ein CMatrix-Objekt durch ein Objekt vom Typ CTemplate, d.h. jedes Element der Matrix wird durch das CTemplate-Objekt dividiert.
Multipliziert das CMatrix-Objekt mit einem Objekt vom Typ CTemplate, d.h. jedes Element der Matrix wird mit dem CTemplate-Objekt multipliziert.
Dividiert das CMatrix-Objekt durch ein Objekt vom Typ CTemplate, d.h. jedes Element der Matrix wird durch das CTemplate-Objekt dividiert.
Gibt das CMatrix-Objekt auf dem Ausgabestream ostream aus.
Liest das CMatrix-Objekt vom Eingabestream istream.
Liest das CMatrix-Objekt vom Eingabestream istream.
Invertiert die Matrix durch den modifizierten Gauß-Algorithmus.
Invertiert die Matrix mit Hilfe der zur Matrix adjungierten Matrix. (A-1 = 1/|A|*ad(A))
Wandelt die Matrix in Dreiecksform. Wird ein Vektor übergeben (d.h. ist b ungleich NULL), dann wird der übergebene Vektor parallel zur Matrix umgeformt. Die Funktion liefert außerdem die Determinante der Matrix zurück.
Berechnet die Determinate der Matrix. (Diese Funktion ist nicht effizient, aber sie funktioniert.)
Löst ein Gleichungssystem der Form A*x = b und liefert den Vektor x zurück.
Sortiert die Zeilen der Matrix in aufsteigender Reiehfolge. Sortierschlüssel ist hierbei die durch Index angegebene Spalte. Die Funktion nutzt den QuickSort-Algorithmus.
Quick-Sort-Algorithmus zum Sortieren der Matrix. Diese Funktion sollte mit Vorsicht genossen werden. Zum Sortieren der Matrix verwende man am besten die Funktion Sort.