Statistics.Matrix.Mutable

dense-linear-algebra-0.1.0.0: Simple and incomplete pure haskell implementation of linear algebra

Copyright | (c) 2014 Bryan O'Sullivan
License | BSD3
Safe Haskell | None
Language | Haskell2010

Statistics.Matrix.Mutable

Description

Basic mutable matrix operations.

Synopsis

- data MMatrix s = MMatrix !Int !Int !(MVector s)
- type MVector s = MVector s Double
- replicate :: Int -> Int -> Double -> ST s (MMatrix s)
- thaw :: Matrix -> ST s (MMatrix s)
- bounds :: MMatrix s -> Int -> Int -> (MVector s -> Int -> r) -> r
- unsafeNew :: Int -> Int -> ST s (MMatrix s)
- unsafeFreeze :: MMatrix s -> ST s Matrix
- unsafeRead :: MMatrix s -> Int -> Int -> ST s Double
- unsafeWrite :: MMatrix s -> Int -> Int -> Double -> ST s ()
- unsafeModify :: MMatrix s -> Int -> Int -> (Double -> Double) -> ST s ()
- immutably :: NFData a => MMatrix s -> (Matrix -> a) -> ST s a
- unsafeBounds :: MMatrix s -> Int -> Int -> (MVector s -> Int -> r) -> r

# Documentation

data MMatrix s #

Two-dimensional mutable matrix, stored in row-major order.

Constructors

MMatrix !Int !Int !(MVector s) |

type MVector s = MVector s Double #

replicate :: Int -> Int -> Double -> ST s (MMatrix s) #

thaw :: Matrix -> ST s (MMatrix s) #

bounds :: MMatrix s -> Int -> Int -> (MVector s -> Int -> r) -> r #

Given row and column numbers, calculate the offset into the flat row-major vector.

unsafeNew #

Arguments

:: Int | Number of row
-> Int | Number of columns
-> ST s (MMatrix s) |

Allocate new matrix. Matrix content is not initialized hence unsafe.

unsafeFreeze :: MMatrix s -> ST s Matrix #

unsafeRead :: MMatrix s -> Int -> Int -> ST s Double #

unsafeWrite :: MMatrix s -> Int -> Int -> Double -> ST s () #

unsafeModify :: MMatrix s -> Int -> Int -> (Double -> Double) -> ST s () #

immutably :: NFData a => MMatrix s -> (Matrix -> a) -> ST s a #

unsafeBounds :: MMatrix s -> Int -> Int -> (MVector s -> Int -> r) -> r #

Given row and column numbers, calculate the offset into the flat row-major vector, without checking.