bed-and-breakfast: Efficient Matrix and Vector operations in 100% Haskell.

[ library, linear-algebra, math, mit, numeric ] [ Propose Tags ]

Efficient Matrix and Vector operations in 100% Haskell.

This library uses boxed and unboxed arrays in the ST monad, in order to achieve efficiency.

Versions [RSS] [faq] 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.3, 0.3.1, 0.3.2, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5 CHANGES.md array (>=0.4), base (>=4.5 && <5), binary (>=0.5), cpphs (>=1.18), deepseq (>=1.3), template-haskell (>=2.7) [details] MIT Julian Fleischer Julian Fleischer Numeric, Math, Linear Algebra https://hackage.haskell.org/package/bed-and-breakfast head: git clone https://github.com/scravy/bed-and-breakfast.git by JulianFleischer at 2018-10-22T10:57:20Z NixOS:0.5 15457 total (97 in the last 30 days) (no votes yet) [estimated by Bayesian average] λ λ λ Docs available Last success reported on 2018-10-22

Modules

[Index] [Quick Jump]

• Numeric

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

[back to package description]

bed-and-breakfast

Matrix operations in 100% pure awesome Haskell.

Bed and Breakfast is a linear algebra library written in Haskell. It provides fast matrix operations like finding the determinant or the inverse of a matrix.

Example (GHCi Session)

*Numeric.Matrix> let m = fromList [[0,3,2],[5,6,10],[4,3,2.0]] :: Matrix Double
*Numeric.Matrix> inv m
Just  -0.2499999999999999  0.0  0.25
0.4166666666666667  -0.11111111111111112  0.1388888888888889
-0.12500000000000006  0.16666666666666669  -0.20833333333333334

*Numeric.Matrix> let m = fromList [[0,3,2],[5,6,10],[4,3,2.0]] :: Matrix Rational
*Numeric.Matrix> inv m
Just  (-1) % 4  0 % 1  1 % 4
5 % 12  (-1) % 9  5 % 36
(-1) % 8  1 % 6  (-5) % 24


Example (with Template Haskell Syntactic Sugar)

{-# LANGUAGE Haskell2010, TemplateHaskell, QuasiQuotes #-}

import Numeric.Matrix
import Numeric.Matrix.Sugar

m :: Matrix Double
m = [dMatrix| 20   30 40
40.5 71 23
20   20 27 |]

mInv = maybe (error "not invertible") id \$ inv m