PrimitiveArray-0.1.1.2: Efficient multidimensional arrays

Data.PrimitiveArray

Contents

Description

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.

Synopsis

Documentation

class Shape sh => PrimArrayOps sh elm whereSource

Associated Types

data PrimArray sh elm :: *Source

Methods

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

assocs :: PrimArray sh elm -> [(sh, elm)]Source

Instances

(Unbox elm, Shape sh, Show elm, Show sh) => PrimArrayOps sh elm 

class (PrimMonad m, Shape sh) => PrimArrayOpsM sh elm m whereSource

Associated Types

data PrimArrayM sh elm m :: *Source

Methods

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

Instances

(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