primitive-extras-0.10.1.6: Extras for the "primitive" library
Safe HaskellSafe-Inferred
LanguageHaskell2010

PrimitiveExtras.PrimMultiArray

Synopsis

Documentation

data PrimMultiArray a Source #

Instances

Instances details
(Show a, Prim a) => Show (PrimMultiArray a) Source # 
Instance details

Defined in PrimitiveExtras.PrimMultiArray

(Eq a, Prim a) => Eq (PrimMultiArray a) Source # 
Instance details

Defined in PrimitiveExtras.PrimMultiArray

create :: (Monad m, Prim element) => Int -> (forall x. Fold (Int, element) x -> m x) -> m (PrimMultiArray element) Source #

Given a size of the outer array and a function, which executes a fold over indexed elements in a monad, constructs a prim multi-array

replicateM :: (Monad m, Prim a) => Int -> m (PrimArray a) -> m (PrimMultiArray a) Source #

outerLength :: PrimMultiArray a -> Int Source #

Get length of the outer dimension of a primitive multi array

toUnfoldlAt :: Prim prim => PrimMultiArray prim -> Int -> Unfoldl prim Source #

toUnfoldlAtM :: (Monad m, Prim prim) => PrimMultiArray prim -> Int -> UnfoldlM m prim Source #

cerealGet :: Prim element => Get Int -> Get element -> Get (PrimMultiArray element) Source #

cerealPut :: Prim element => Putter Int -> Putter element -> Putter (PrimMultiArray element) Source #

fold :: (Integral size, Prim size, Prim element) => PrimArray size -> Fold (Int, element) (PrimMultiArray element) Source #

Having a priorly computed array of inner dimension sizes, e.g., using the indexCountsFold, construct a fold over indexed elements into a multi-array of elements.

Thus it allows to construct it in two passes over the indexed elements.

Orphan instances

(Show a, Prim a) => Show (PrimMultiArray a) Source # 
Instance details

(Eq a, Prim a) => Eq (PrimMultiArray a) Source # 
Instance details