The Extreme Optimization Numerical Libraries for .NET
contain an extensive set of classes for vector and matrix calculations.
All classes are generic over the element type, which can be real or complex.
Several specialized matrix and vector types are available,
including sparse vectors and matrices.
Two classes,
Vector and
Matrix,
provide static methods to create vectors and matrices, respectively,
and perform operations on them.
The VectorT
and MatrixT
classes represent actual vector and matrix objects.
The generic type parameter defines the element type, which can be anything,
including complex numbers (ComplexT).
Calculations are supported as long as the element type
supports the required operations.
The code uses the Basic Linear Algebra Subroutines (BLAS) at its core.
Several implementations are provided. One is generic, written in 100% managed code,
and works for all element types that define the relevant operations.
One is still pure managed code, but specialized for elements of type
Double
and ComplexT
of Double.
and is suitable for smaller problems and in situations where portability is
of the essence. The third implementation is a hand-optimized native
implementation based on Intel®'s Math Kernel Library.
This implementation is suitable for large problems where performance is crucial.
The classes in the Vector and Matrix Library
are organized in a consistent namespace hierarchy rooted in the
Extreme.Mathematics.LinearAlgebra
namespace. The structure of the namespaces is as follows: