matrices-0.3.0: native matrix based on vector

Copyright(c) 2014 Kai Zhang
LicenseBSD3
Safe HaskellNone
LanguageHaskell2010

Data.Matrix.Generic.Base

Contents

Description

 

Synopsis

Documentation

rows :: Vector v a => Matrix v a -> Int Source

cols :: Vector v a => Matrix v a -> Int Source

dim :: Vector v a => Matrix v a -> (Int, Int) Source

(!) :: Vector v a => Matrix v a -> (Int, Int) -> a Source

unsafeIndex :: Vector v a => Matrix v a -> (Int, Int) -> a Source

empty :: Vector v a => Matrix v a Source

Conversions

matrix :: Vector v a => Int -> [a] -> Matrix v a Source

flatten :: Matrix v a -> v a Source

fromVector :: Vector v a => (Int, Int) -> v a -> Matrix v a Source

toRows :: Vector v a => Matrix v a -> [v a] Source

toColumns :: Vector v a => Matrix v a -> [v a] Source

fromRows :: Vector v a => [v a] -> Matrix v a Source

fromColumns :: Vector v a => [v a] -> Matrix v a Source

toList :: Vector v a => Matrix v a -> [a] Source

toLists :: Vector v a => Matrix v a -> [[a]] Source

fromLists :: Vector v a => [[a]] -> Matrix v a Source

doesn't check if the list of list is a valid matrix

Different matrix types

convert :: (Vector v a, Vector w a) => Matrix v a -> Matrix w a Source

convert different matrix type

tr :: Vector v a => Matrix v a -> Matrix v a Source

takeRow :: Vector v a => Matrix v a -> Int -> v a Source

takeColumn :: Vector v a => Matrix v a -> Int -> v a Source

subMatrix Source

Arguments

:: Vector v a 
=> (Int, Int)

upper left corner of the submatrix

-> (Int, Int)

bottom right corner of the submatrix

-> Matrix v a 
-> Matrix v a 

O(1) extract sub matrix

ident :: (Num a, Vector v a) => Int -> Matrix v a Source

diag Source

Arguments

:: (Num a, Vector v a, Foldable t) 
=> t a

diagonal

-> Matrix v a 

create a square matrix with given diagonal, other entries default to 0

diagRect Source

Arguments

:: (Vector v a, Foldable t) 
=> a

default value

-> (Int, Int) 
-> t a

diagonal

-> Matrix v a 

create a rectangular matrix with default values and given diagonal

takeDiag :: Vector v a => Matrix v a -> v a Source

extracts the diagonal from a rectangular matrix

fromBlocks Source

Arguments

:: Vector v a 
=> a

default value

-> [[Matrix v a]] 
-> Matrix v a 

isSymmetric :: (Eq a, Vector v a) => Matrix v a -> Bool Source

force :: Vector v a => Matrix v a -> Matrix v a Source

foldl :: Vector v b => (a -> b -> a) -> a -> Matrix v b -> a Source

Mapping

imap :: (Vector v a, Vector v b) => ((Int, Int) -> a -> b) -> Matrix v a -> Matrix v b Source

map :: (Vector v a, Vector v b) => (a -> b) -> Matrix v a -> Matrix v b Source

Monadic mapping

mapM :: (Vector v a, Vector v b, Monad m) => (a -> m b) -> Matrix v a -> m (Matrix v b) Source

mapM_ :: (Vector v a, Monad m) => (a -> m b) -> Matrix v a -> m () Source

forM :: (Vector v a, Vector v b, Monad m) => Matrix v a -> (a -> m b) -> m (Matrix v b) Source

forM_ :: (Vector v a, Monad m) => Matrix v a -> (a -> m b) -> m () Source