Numerical Linear Algebra using LAPACK
This is a high-level interface to LAPACK. It provides solvers for
simultaneous linear equations, linear least-squares problems,
eigenvalue and singular value problems for matrices with certain kinds
of structures.
Features:
- Based on comfort-array: Allows to precisely express
one-column or one-row matrices, as well as dense, square, triangular,
banded, symmetric, Hermitian, banded Hermitian, blocked and LU or QR
decomposed matrices.
- Support all data types that are supported by LAPACK, i.e. Float,
Double, Complex Float, Complex Double
- No need for c2hs, hsc, Template Haskell or C helper functions
- Dependency only on BLAS and LAPACK, no GSL
- Works with matrices and vectors with zero dimensions. This one is
tricky and still leads to surprises since different LAPACK
implementations consider different situations as corner cases.
- No automatic (and dangerous) implicit expansion of singleton
vectors or matrices. Instead there are special operators for scaling
of vectors and matrices.
- Separate formatting operator (##): Works better for
tuples of matrices and vectors than show. Show is used
for code one-liners that can be copied back into Haskell modules.
Support for nice formatting in HyperHaskell.
See also:
hmatrix.
For examples see the
Example modules and the packages
sum-pyramid,
wuerfelschlange,
magico,
linear-circuit,
resistor-cube.