Structured Matrix Types
Matrices come in many shapes and sizes. When the matrix exhibits a definite structure, calculations can often be sped up significantly. Storage requirements may also be significantly reduced. It is therefore useful to define different matrix types to take advantage of these improvements.
Numerics.NET includes classes for upper- and lower-triangular, symmetric, Hermitian, diagonal, and band matrices. These classes are contained in the Numerics.NET.LinearAlgebra namespace.
Structured matrices can be created as independent objects, copied from another matrix, or exposed as views over existing storage. The current API uses method names to make this explicit: CopyFrom... methods copy data, Wrap... methods wrap existing arrays or storage, and Get...View methods return a structured view of another matrix. Legacy Extract... APIs may still be available for compatibility.
All matrix code uses optimized implementations of the Basic Linear Algebra Subroutines (BLAS) and the Linear Algebra PACKage (LAPACK) wherever possible.
In this section: