This library provides a purely functional interface to linear algebra and other numerical computations, internally implemented using GSL, BLAS and LAPACK.

All linear algebra functions mentioned in GNU-Octave's Quick Reference (except syl) are already available both for real and complex matrices: eig, svd, chol, qr, hess, schur, inv, pinv, expm, norm, and det. There are also functions for numeric integration and differentiation, nonlinear minimization and root finding, etc.

  • Darcs repository: darcs get http://code.haskell.org/hmatrix

I am very happy to receive contributions, suggestions, and bug reports.

 available functions

The library provides high level convenience functions based on wrappers to the following functions:

LAPACK: dgesvd, dgesdd, zgesvd, zgeev, dgeev, dsyev, zheev, dgesv, zgesv, dgels, zgels, dgelss, zgelss, dgeqr2, zgeqr2, dpotrf, zpotrf, dgehrd, zgehrd, dgees, zgees, dgetrf, zgetrf, dgetrs, zgetrs.

GSL: gsl_integration_{qng, qags}, gsl_deriv_{central, forward}, gsl_multimin_fminimizer_{conjugate_fr, vectorBFGS, nmsimplex}, gsl_multiroot_fsolver_{hybrid[s], dnewton, broyden}, gsl_poly_complex_solve, gsl_fft_complex_{forward, inverse}, and 200+ special functions.

related projects

  • hmatrix-static, by Reiner Pope. A thin, lightweight wrapper over hmatrix to support static checking of matrix and vector sizes (for instance, addition of different-sized vectors will be disallowed at compile-time)
  • BLAS and LAPACK Haskell bindings by Patrick Perry.

  • The alternative numeric prelude by Dylan Thurston, Henning Thielemann, and Mikael Johansson.

  • Math packages in HackageDB

applications

  • easyVision: a system for fast prototyping of computer vision and image processing applications based on HopenGL, MPlayer and Intel's IPP image processing library.