Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data SparseMatrix :: MatrixKind where
- SparseMatrix :: (SingI r, SingI c) => v a -> Vector CInt -> Vector CInt -> SparseMatrix r c v a
- class Eq a => Zero a where
- zero :: a
- dim :: Matrix mat v a => mat r c v a -> (Int, Int)
- rows :: Matrix m v a => m r c v a -> Int
- cols :: Matrix m v a => m r c v a -> Int
- (!) :: forall m r c v a i j. (Matrix m v a, i <= r, j <= c) => m r c v a -> (Sing i, Sing j) -> a
- takeDiag :: Matrix mat v a => mat r c v a -> v a
- unsafeIndex :: Matrix mat v a => mat r c v a -> (Int, Int) -> a
- unsafeTakeRow :: Matrix mat v a => mat r c v a -> Int -> v a
- unsafeTakeColumn :: Matrix mat v a => mat r c v a -> Int -> v a
- empty :: Matrix m v a => m 0 0 v a
- fromVector :: forall m r c v a. (SingI r, SingI c, Matrix m v a) => v a -> m r c v a
- fromList :: (SingI r, SingI c, Matrix m v a) => [a] -> m r c v a
- unsafeFromVector :: (Matrix mat v a, SingI r, SingI c) => v a -> mat r c v a
- diag :: (Vector v a, Zero a, SingI n) => Matrix n 1 v a -> SparseMatrix n n v a
- diagRect :: (Vector v a, Zero a, SingI r, SingI c, n <= r, n <= c) => Matrix n 1 v a -> SparseMatrix r c v a
- flatten :: Matrix mat v a => mat r c v a -> v a
- toList :: Matrix m v a => m r c v a -> [a]
- convertAny :: (Matrix m1 v1 a, Matrix m2 v2 a, SingI r, SingI c) => m1 r c v1 a -> m2 r c v2 a
Sparse matrix
data SparseMatrix :: MatrixKind where Source #
Column-major mutable matrix.
SparseMatrix | |
|
Instances
class Eq a => Zero a where Source #
Instances
Zero Double Source # | |
Defined in Data.Matrix.Static.Sparse | |
Zero Float Source # | |
Defined in Data.Matrix.Static.Sparse | |
Zero Int Source # | |
Defined in Data.Matrix.Static.Sparse | |
Eq a => Zero [a] Source # | |
Defined in Data.Matrix.Static.Sparse | |
Zero (Complex Double) Source # | |
Zero (Complex Float) Source # | |
Accessors
length information
Query
(!) :: forall m r c v a i j. (Matrix m v a, i <= r, j <= c) => m r c v a -> (Sing i, Sing j) -> a Source #
Indexing
takeDiag :: Matrix mat v a => mat r c v a -> v a Source #
Extract the diagonal. Default algorithm is O(min(m,n) * O(unsafeIndex)).
Unsafe Query
unsafeTakeRow :: Matrix mat v a => mat r c v a -> Int -> v a Source #
Extract a row. Default algorithm is O(n * O(unsafeIndex)).
unsafeTakeColumn :: Matrix mat v a => mat r c v a -> Int -> v a Source #
Extract a column. Default algorithm is O(m * O(unsafeIndex)).
Construction
fromVector :: forall m r c v a. (SingI r, SingI c, Matrix m v a) => v a -> m r c v a Source #
Construct matrix from a vector containg columns.
fromList :: (SingI r, SingI c, Matrix m v a) => [a] -> m r c v a Source #
Construct matrix from a list containg columns.
unsafeFromVector :: (Matrix mat v a, SingI r, SingI c) => v a -> mat r c v a Source #
:: (Vector v a, Zero a, SingI n) | |
=> Matrix n 1 v a | diagonal |
-> SparseMatrix n n v a |
O(m*n) Create a square matrix with given diagonal.
:: (Vector v a, Zero a, SingI r, SingI c, n <= r, n <= c) | |
=> Matrix n 1 v a | diagonal |
-> SparseMatrix r c v a |
O(m*n) Create a rectangular matrix with default values and given diagonal
Conversions
flatten :: Matrix mat v a => mat r c v a -> v a Source #
Convert matrix to vector in column order. Default algorithm is O((m*n) * O(unsafeIndex)).
Different matrix types
convertAny :: (Matrix m1 v1 a, Matrix m2 v2 a, SingI r, SingI c) => m1 r c v1 a -> m2 r c v2 a Source #
O(m*n) Convert to any type of matrix.