Primitive arrays with a small set of operations. Modelled after repa arrays and indexing.
Array indexing is between [i..j] per dimension.
All operations are UNSAFE. In interpreted code, assert provides a safety net.
- class Shape sh => PrimArrayOps sh elm where
- class (PrimMonad m, Shape sh) => PrimArrayOpsM sh elm m where
- data PrimArrayM sh elm m :: *
- readM :: PrimArrayM sh elm m -> sh -> m elm
- writeM :: PrimArrayM sh elm m -> sh -> elm -> m ()
- fromAssocsM :: sh -> sh -> elm -> [(sh, elm)] -> m (PrimArrayM sh elm m)
- unsafeFreezeM :: PrimArrayM sh elm m -> m (PrimArray sh elm)
- boundsM :: PrimArrayM sh elm m -> (sh, sh)
- inBoundsM :: PrimArrayM sh elm m -> sh -> Bool
- (!) :: PrimArrayOps sh elm => PrimArray sh elm -> sh -> elm
Documentation
class Shape sh => PrimArrayOps sh elm whereSource
unsafeIndex :: PrimArray sh elm -> sh -> elmSource
bounds :: PrimArray sh elm -> (sh, sh)Source
inBounds :: PrimArray sh elm -> sh -> BoolSource
fromAssocs :: sh -> sh -> elm -> [(sh, elm)] -> PrimArray sh elmSource
(Unbox elm, Shape sh, Show elm, Show sh) => PrimArrayOps sh elm |
class (PrimMonad m, Shape sh) => PrimArrayOpsM sh elm m whereSource
data PrimArrayM sh elm m :: *Source
readM :: PrimArrayM sh elm m -> sh -> m elmSource
writeM :: PrimArrayM sh elm m -> sh -> elm -> m ()Source
fromAssocsM :: sh -> sh -> elm -> [(sh, elm)] -> m (PrimArrayM sh elm m)Source
Create a monadic array from a list of associations
unsafeFreezeM :: PrimArrayM sh elm m -> m (PrimArray sh elm)Source
boundsM :: PrimArrayM sh elm m -> (sh, sh)Source
inBoundsM :: PrimArrayM sh elm m -> sh -> BoolSource
(Unbox elm, Shape sh) => PrimArrayOpsM sh elm IO | |
(Unbox elm, Shape sh) => PrimArrayOpsM sh elm (ST s) |
Helper functions
(!) :: PrimArrayOps sh elm => PrimArray sh elm -> sh -> elmSource