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 thanshow
.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
.