-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | native matrix based on vector -- @package matrices @version 0.2.0 module Data.Matrix.Generic.Types -- | row-major matrix supporting efficient slice data Matrix v a Matrix :: !Int -> !Int -> !Int -> !Int -> !(v a) -> Matrix v a -- | mutable matrix data MMatrix v m a MMatrix :: !Int -> !Int -> !Int -> !Int -> !(v m a) -> MMatrix v m a instance [overlap ok] Vector v Bool => Show (Matrix v Bool) instance [overlap ok] (Vector v a, Show a) => Show (Matrix v a) module Data.Matrix.Generic.Mutable fromMVector :: MVector v a => Int -> Int -> v m a -> MMatrix v m a thaw :: PrimMonad m => Matrix v a -> m (MMatrix (Mutable v) (PrimState m) a) unsafeThaw :: PrimMonad m => Matrix v a -> m (MMatrix (Mutable v) (PrimState m) a) freeze :: (PrimMonad m, Vector v a) => MMatrix (Mutable v) (PrimState m) a -> m (Matrix v a) unsafeFreeze :: (PrimMonad m, Vector v a) => MMatrix (Mutable v) (PrimState m) a -> m (Matrix v a) write :: (PrimMonad m, MVector v a) => MMatrix v (PrimState m) a -> (Int, Int) -> a -> m () unsafeWrite :: (PrimMonad m, MVector v a) => MMatrix v (PrimState m) a -> (Int, Int) -> a -> m () read :: (PrimMonad m, MVector v a) => MMatrix v (PrimState m) a -> (Int, Int) -> m a unsafeRead :: (PrimMonad m, MVector v a) => MMatrix v (PrimState m) a -> (Int, Int) -> m a replicate :: (PrimMonad m, MVector v a) => Int -> Int -> a -> m (MMatrix v (PrimState m) a) new :: (PrimMonad m, MVector v a) => Int -> Int -> m (MMatrix v (PrimState m) a) module Data.Matrix.Mutable type MMatrix a = MMatrix MVector a module Data.Matrix.Storable.Mutable type MMatrix a = MMatrix MVector a module Data.Matrix.Unboxed.Mutable type MMatrix a = MMatrix MVector a module Data.Matrix.Generic.Base rows :: Vector v a => Matrix v a -> Int cols :: Vector v a => Matrix v a -> Int (!) :: Vector v a => Matrix v a -> (Int, Int) -> a unsafeIndex :: Vector v a => Matrix v a -> (Int, Int) -> a matrix :: Vector v a => Int -> [a] -> Matrix v a flatten :: Matrix v a -> v a fromVector :: Vector v a => Int -> Int -> v a -> Matrix v a toRows :: Vector v a => Matrix v a -> [v a] toColumns :: Vector v a => Matrix v a -> [v a] fromRows :: Vector v a => [v a] -> Matrix v a fromColumns :: Vector v a => [v a] -> Matrix v a toList :: Vector v a => Matrix v a -> [a] toLists :: Vector v a => Matrix v a -> [[a]] -- | doesn't check if the list of list is a valid matrix fromLists :: Vector v a => [[a]] -> Matrix v a tr :: Vector v a => Matrix v a -> Matrix v a takeRow :: Vector v a => Int -> Matrix v a -> v a takeColumn :: Vector v a => Int -> Matrix v a -> v a subMatrix :: Vector v a => (Int, Int) -> (Int, Int) -> Matrix v a -> Matrix v a ident :: (Num a, Vector v a) => Int -> Matrix v a -- | create a square matrix with given diagonal, other entries default to 0 diag :: (Num a, Vector v a, Foldable t) => t a -> Matrix v a -- | create a rectangular matrix with default values and given diagonal diagRect :: (Vector v a, Foldable t) => a -> Int -> Int -> t a -> Matrix v a fromBlocks :: Vector v a => a -> [[Matrix v a]] -> Matrix v a isSymmetric :: (Eq a, Vector v a) => Matrix v a -> Bool force :: Vector v a => Matrix v a -> Matrix v a map :: (Vector v a, Vector v b) => (a -> b) -> Matrix v a -> Matrix v b module Data.Matrix.Storable type Matrix a = Matrix Vector a module Data.Matrix.Unboxed type Matrix a = Matrix Vector a module Data.Matrix.Generic module Data.Matrix type Matrix a = Matrix Vector a