This C++ library is intended for scientists and engineers who need to
manipulate a variety of types of matrices using standard matrix operations.
Emphasis is on the kind of operations needed in statistical calculations such
as least squares, linear equation solve and eigenvalues.
It supports matrix types: Matrix (rectangular matrix); UpperTriangularMatrix;
LowerTriangularMatrix; DiagonalMatrix; SymmetricMatrix; BandMatrix;
UpperBandMatrix; LowerBandMatrix; SymmetricBandMatrix; IdentityMatrix;
RowVector; ColumnVector.
The library includes the operations *, +, -, *=, +=, -=, Kronecker product,
Schur product, concatenation, inverse, transpose, conversion between types,
submatrix, determinant, Cholesky decomposition, QR triangularisation, singular
value decomposition, eigenvalues of a symmetric matrix, sorting, fast Fourier
and trig. transforms, printing and an interface with Numerical Recipes in C.
It is intended for matrices in the range 10 x 10 to the maximum size your
machine will accommodate in a single array. The package works for very small
matrices but becomes rather inefficient. A lazy evaluation approach to
evaluating matrix expressions is used to improve efficiency and reduce use of
temporary storage.