Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data MMatrix a b s = MMatrix {}
- type MMatrixXf = MMatrix Float CFloat
- type MMatrixXd = MMatrix Double CDouble
- type MMatrixXcf = MMatrix (Complex Float) (CComplex CFloat)
- type MMatrixXcd = MMatrix (Complex Double) (CComplex CDouble)
- type IOMatrix a b = MMatrix a b RealWorld
- type STMatrix a b s = MMatrix a b s
- new :: (PrimMonad m, Elem a b) => Int -> Int -> m (MMatrix a b (PrimState m))
- replicate :: (PrimMonad m, Elem a b) => Int -> Int -> a -> m (MMatrix a b (PrimState m))
- valid :: Elem a b => MMatrix a b s -> Bool
- read :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> m a
- write :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> a -> m ()
- unsafeRead :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> m a
- unsafeWrite :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> a -> m ()
- set :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> a -> m ()
- copy :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> MMatrix a b (PrimState m) -> m ()
- unsafeCopy :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> MMatrix a b (PrimState m) -> m ()
- unsafeWith :: Elem a b => IOMatrix a b -> (Ptr b -> CInt -> CInt -> IO c) -> IO c
Documentation
Mutable matrix. You can modify elements
type MMatrixXcf = MMatrix (Complex Float) (CComplex CFloat) Source #
Alias for single previsiom mutable matrix of complex numbers
type MMatrixXcd = MMatrix (Complex Double) (CComplex CDouble) Source #
Alias for double prevision mutable matrix of complex numbers
Construction
new :: (PrimMonad m, Elem a b) => Int -> Int -> m (MMatrix a b (PrimState m)) Source #
Create a mutable matrix of the given size and fill it with 0 as an initial value.
replicate :: (PrimMonad m, Elem a b) => Int -> Int -> a -> m (MMatrix a b (PrimState m)) Source #
Create a mutable matrix of the given size and fill it with as an initial value.
Consistency check
Accessing individual elements
read :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> m a Source #
Yield the element at the given position.
write :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> a -> m () Source #
Replace the element at the given position.
unsafeRead :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> m a Source #
Yield the element at the given position. No bounds checks are performed.
unsafeWrite :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> Int -> Int -> a -> m () Source #
Replace the element at the given position. No bounds checks are performed.
Modifying matrices
set :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> a -> m () Source #
Set all elements of the matrix to the given value
copy :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> MMatrix a b (PrimState m) -> m () Source #
Copy a matrix. The two matrices must have the same size and may not overlap.
unsafeCopy :: (PrimMonad m, Elem a b) => MMatrix a b (PrimState m) -> MMatrix a b (PrimState m) -> m () Source #
Copy a matrix. The two matrices must have the same size and may not overlap however no bounds check performaned to it may SEGFAULT for incorrect input.