sparse-linear-algebra: Numerical computation in native Haskell

[ gpl, library, numeric ] [ Propose Tags ]

Currently it provides iterative linear solvers, matrix decompositions, eigenvalue computations and related utilities. Please see README.md for details


[Skip to Readme]
Versions [faq] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5, 0.2.0.7, 0.2.0.8, 0.2.0.9, 0.2.1.0, 0.2.1.1, 0.2.2.0, 0.2.9, 0.2.9.1, 0.2.9.2, 0.2.9.3, 0.2.9.4, 0.2.9.5, 0.2.9.6, 0.2.9.7, 0.2.9.8, 0.2.9.9, 0.3, 0.3.1 (info)
Dependencies base (>=4.7 && <5), containers, hspec, mtl (>=2.2.1), mwc-random, primitive (>=0.6.1.0), QuickCheck [details]
License GPL-3.0-only
Copyright 2016 Marco Zocca
Author Marco Zocca
Maintainer zocca.marco gmail
Category Numeric
Home page https://github.com/ocramz/sparse-linear-algebra
Source repo head: git clone https://github.com/ocramz/sparse-linear-algebra
Uploaded by ocramz at Mon Oct 17 16:55:10 UTC 2016
Distributions LTSHaskell:0.3.1, NixOS:0.3.1, Stackage:0.3.1
Executables sparse-linear-algebra
Downloads 6292 total (280 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-10-17 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for sparse-linear-algebra-0.2.0.2

[back to package description]

sparse-linear-algebra

Numerical computation in native Haskell

TravisCI : Build Status

This library provides common numerical analysis functionality, without requiring any external bindings. It is not optimized for performance (yet), but it serves as an experimental platform for scientific computation in a purely functional setting.

Algorithms :

  • Iterative linear solvers

    • Conjugate Gradient Squared (CGS)

    • BiConjugate Gradient Stabilized (BiCGSTAB) (non-Hermitian systems)

  • Matrix decompositions

    • QR factorization
  • Eigenvalue algorithms

    • QR algorithm

    • Rayleigh quotient iteration

  • Utilities : Vector and matrix norms, matrix condition number, Givens rotation, Householder reflection

  • Predicates : Matrix orthogonality test (A^T A ~= I)


This is also an experiment in principled scientific programming :

  • set the stage by declaring typeclasses and some useful generic operations (normed linear vector spaces, i.e. finite-dimensional spaces equipped with an inner product that induces a distance function),

  • define appropriate data structures, and how they relate to those properties (sparse vectors and matrices, defined internally via Data.IntMap, are made instances of the VectorSpace and Additive classes respectively). This allows to decouple the algorithms from the actual implementation of the backend,

  • implement the algorithms, following 1:1 the textbook [1]

License

GPL3, see LICENSE

Credits

Inspired by

References

[1] : Y. Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., 2000