Safe Haskell | None |
---|---|

Language | Haskell98 |

Algorithms operating on matrices.

These functions should give performance comparable with nested loop C implementations.

If you care deeply about runtime performance then you may be better off using a binding to LAPACK, such as hvector.

## Synopsis

- row :: DIM2 -> Int
- col :: DIM2 -> Int
- mmultP :: Monad m => Array U DIM2 Double -> Array U DIM2 Double -> m (Array U DIM2 Double)
- mmultS :: Array U DIM2 Double -> Array U DIM2 Double -> Array U DIM2 Double
- transpose2P :: Monad m => Array U DIM2 Double -> m (Array U DIM2 Double)
- transpose2S :: Array U DIM2 Double -> Array U DIM2 Double
- trace2P :: Monad m => Array U DIM2 Double -> m Double
- trace2S :: Array U DIM2 Double -> Double

# Documentation

# Matrix Multiplication.

mmultP :: Monad m => Array U DIM2 Double -> Array U DIM2 Double -> m (Array U DIM2 Double) Source #

Matrix matrix multiply, in parallel.

mmultS :: Array U DIM2 Double -> Array U DIM2 Double -> Array U DIM2 Double Source #

Matrix matrix multiply, sequentially.

# Transposition.

transpose2P :: Monad m => Array U DIM2 Double -> m (Array U DIM2 Double) Source #

Transpose a 2D matrix, in parallel.

transpose2S :: Array U DIM2 Double -> Array U DIM2 Double Source #

Transpose a 2D matrix, sequentially.