LinAlg -- Die Lineare-Algebra-Bibliothek für Scala

LinAlg stellt Datentypen und Operationen für algebraische Vektoren und Matrizen zur Verfügung.

Vektor- und Matrixelemente können von beliebigem Typ sein, vorausgesetzt, dass eine Factory für den jeweiligen Elementtyp existiert. Zur Zeit gibt es solche Factories für Double, Float, Long, Int, Short, Byte und Char.

Vektor- und Matrix-(Zeilen- und Spalten-)Indizes sind beliebige ganze Zahlen (genauer: ein Index muss im Intervall [Mindex, Maxdex] liegen wie es im Index-Objekt definiert ist). Es werden aber nur solche Elemente tatsächlich gespeichert, die einer Untermenge des gesamten Integer-Bereichs entsprechen (die konkreten Elemente), während alle anderen Elemente definitionsgemäß null sind (virtuelle Elemente).

Dieses Konzept (das ich vor langer Zeit im Zusammenhang mit der ALGOL68-Library-Prelude TORRIX wertzuschätzen gelernt habe) liefert nicht nur einen natürlichen Ansatz für Operationen mit Vektoren und Matrizen mit verschiedenen Indexbereichen, sondern beugt auch Index-out-of-Bounds-Exceptions vor.

Konkrete Indexbereiche (die konkreten Elementen entsprechen) werden implizit oder explizit beim Erzeugen eines Vektors oder einer Matrix zugeordnet. Standardmäßig beginnt der Bereich mit 1 und läuft bis zur Anzahl der spezifizierten Elemente, aber diese Voreinstellung lässt sich überschreiben.

Bereich:

Name: 
LinAlg
Version: 
3.1.0
Programming language: 
Scala (2.12, 2.11)
Documentation: 
API: 
Source code: 
Date: 
Saturday, 20. January 2018