PrimitiveArray-0.7.0.0: Efficient multidimensional arrays

Safe HaskellNone
LanguageHaskell2010

Data.PrimitiveArray.Dense

Contents

Description

Dense primitive arrays where the lower index is zero (or the equivalent of zero for newtypes and enumerations).

Actual writes to data structures use a more safe write instead of the unsafe unsafeWrite. Writes also tend to occur much less in DP algorithms (say, N^2 writes for an N^3 time algorithm -- mostly reads are being executed).

TODO consider if we want to force the lower index to be zero, or allow non-zero lower indices. Will have to be considered together with the Index.Class module!

TODO while Unboxed is, in princile, Hashable, we'd need the corresponding VU.Vector instances ...

Synopsis

Unboxed, multidimensional arrays.

data Unboxed sh e Source

Constructors

Unboxed !sh !sh !(Vector e) 

Instances

(Index sh, Unbox elm) => PrimArrayOps Unboxed sh elm Source 
(Index sh, Unbox elm) => MPrimArrayOps Unboxed sh elm Source 
(Index sh, Unbox e, Unbox e') => PrimArrayMap Unboxed sh e e' Source 
(Eq sh, Eq e, Unbox e) => Eq (Unboxed sh e) Source 
(Read sh, Read e, Unbox e) => Read (Unboxed sh e) Source 
(Show sh, Show e, Unbox e) => Show (Unboxed sh e) Source 
Generic (Unboxed sh e) Source 
(ToJSON sh, ToJSON e, Unbox e) => ToJSON (Unboxed sh e) Source 
(FromJSON sh, FromJSON e, Unbox e) => FromJSON (Unboxed sh e) Source 
(Binary sh, Binary e, Unbox e) => Binary (Unboxed sh e) Source 
(Serialize sh, Serialize e, Unbox e) => Serialize (Unboxed sh e) Source 
NFData sh => NFData (MutArr m (Unboxed sh e)) Source 
NFData sh => NFData (Unboxed sh e) Source 
(Hashable sh, Hashable e, Hashable (Vector e), Unbox e) => Hashable (Unboxed sh e) Source 
data MutArr m (Unboxed sh e) = MUnboxed !sh !sh !(MVector (PrimState m) e) Source 
type Rep (Unboxed sh e) Source 

Boxed, multidimensional arrays.

data Boxed sh e Source

Constructors

Boxed !sh !sh !(Vector e) 

Instances

Index sh => PrimArrayOps Boxed sh elm Source 
Index sh => MPrimArrayOps Boxed sh elm Source 
Index sh => PrimArrayMap Boxed sh e e' Source 
(Eq sh, Eq e) => Eq (Boxed sh e) Source 
(Read sh, Read e) => Read (Boxed sh e) Source 
(Show sh, Show e) => Show (Boxed sh e) Source 
Generic (Boxed sh e) Source 
(ToJSON sh, ToJSON e) => ToJSON (Boxed sh e) Source 
(FromJSON sh, FromJSON e) => FromJSON (Boxed sh e) Source 
(Binary sh, Binary e) => Binary (Boxed sh e) Source 
(Serialize sh, Serialize e) => Serialize (Boxed sh e) Source 
NFData sh => NFData (MutArr m (Boxed sh e)) Source 
(NFData sh, NFData e) => NFData (Boxed sh e) Source 
(Hashable sh, Hashable e, Hashable (Vector e)) => Hashable (Boxed sh e) Source 
data MutArr m (Boxed sh e) = MBoxed !sh !sh !(MVector (PrimState m) e) Source 
type Rep (Boxed sh e) Source