packages feed

bed-and-breakfast-0.5: README.md

bed-and-breakfast [![Build Status](https://travis-ci.org/scravy/bed-and-breakfast.svg?branch=master)](https://travis-ci.org/scravy/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.

- [API documentation](https://hackage.haskell.org/package/bed-and-breakfast-0.4.1/docs/Numeric-Matrix.html)
- bed-and-breakfast on [Hackage](https://hackage.haskell.org/package/bed-and-breakfast)

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