ArrayRef-0.1.2: Unboxed references, dynamic arrays and moreSource codeContentsIndex
Data.ArrayBZ.Internals.Unboxed
PortabilityGHC/Hugs
Stabilityexperimental
MaintainerBulat Ziganshin <Bulat.Ziganshin@gmail.com>
Description

Unboxed arrays

Based on the idea of Oleg Kiselyov (see http:www.haskell.orgpipermailhaskell-cafe2004-July006400.html)

Synopsis
data UnboxedMutableArray s i e = UMA !i !i !MUVec s e
type STUArray = UnboxedMutableArray
stUArrayTc :: TyCon
type IOUArray = IOSpecific3 UnboxedMutableArray
iOUArrayTc :: TyCon
data UArray i e = UA !i !i !UVec e
uArrayTc :: TyCon
withNewArray :: (STorIO t t2, Ix i, MArray (UnboxedMutableArray t2) e t) => (i, i) -> e -> (UnboxedMutableArray t2 i e -> t t1) -> t (UArray i e)
withArrayCopy :: (Ix t, Unboxed t1, STorIO t2 s) => UArray t t1 -> (UnboxedMutableArray s t t1 -> t2 t3) -> t2 (UArray t t1)
doReplace :: (Ix i, MArray a e t) => [(Int, e)] -> a i e -> t ()
doAccum :: (Ix i, MArray a t1 t2) => (t1 -> t -> t1) -> [(Int, t)] -> a i t1 -> t2 ()
freezeUA :: (STorIO t3 t, Unboxed t2, Ix t1) => UnboxedMutableArray t t1 t2 -> t3 (UArray t1 t2)
thawUA :: (STorIO t2 s, Unboxed t1, Ix t) => UArray t t1 -> t2 (UnboxedMutableArray s t t1)
unsafeFreezeUA :: STorIO t3 t1 => UnboxedMutableArray t1 t t2 -> t3 (UArray t t2)
unsafeThawUA :: STorIO t2 s => UArray t t1 -> t2 (UnboxedMutableArray s t t1)
sizeOfUA :: forall i e. (Ix i, Unboxed e) => UArray i e -> Int
sizeOfUMA :: forall i e s. (Ix i, Unboxed e) => UnboxedMutableArray s i e -> Int
freezeIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => IOUArray i e -> IO (UArray i e)
thawIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> IO (IOUArray i e)
unsafeFreezeIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => IOUArray i e -> IO (UArray i e)
unsafeThawIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> IO (IOUArray i e)
freezeSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => STUArray s i e -> ST s (UArray i e)
thawSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> ST s (STUArray s i e)
unsafeFreezeSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => STUArray s i e -> ST s (UArray i e)
unsafeThawSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> ST s (STUArray s i e)
castUArray :: forall i e e'. (Ix i, Enum i, Unboxed e, Unboxed e') => UArray i e -> UArray i e'
castIOUArray :: forall i e e'. (Ix i, Enum i, Unboxed e, Unboxed e') => IOUArray i e -> IOUArray i e'
castSTUArray :: forall i e e' s. (Ix i, Enum i, Unboxed e, Unboxed e') => STUArray s i e -> STUArray s i e'
Documentation
data UnboxedMutableArray s i e Source
Unboxed mutable arrays
Constructors
UMA !i !i !MUVec s e
show/hide Instances
type STUArray = UnboxedMutableArraySource
Unboxed mutable arrays in ST monad
stUArrayTc :: TyConSource
type IOUArray = IOSpecific3 UnboxedMutableArraySource
Unboxed mutable arrays in IO monad
iOUArrayTc :: TyConSource
data UArray i e Source
Unboxed arrays
Constructors
UA !i !i !UVec e
show/hide Instances
uArrayTc :: TyConSource
withNewArray :: (STorIO t t2, Ix i, MArray (UnboxedMutableArray t2) e t) => (i, i) -> e -> (UnboxedMutableArray t2 i e -> t t1) -> t (UArray i e)Source
withArrayCopy :: (Ix t, Unboxed t1, STorIO t2 s) => UArray t t1 -> (UnboxedMutableArray s t t1 -> t2 t3) -> t2 (UArray t t1)Source
doReplace :: (Ix i, MArray a e t) => [(Int, e)] -> a i e -> t ()Source
doAccum :: (Ix i, MArray a t1 t2) => (t1 -> t -> t1) -> [(Int, t)] -> a i t1 -> t2 ()Source
freezeUA :: (STorIO t3 t, Unboxed t2, Ix t1) => UnboxedMutableArray t t1 t2 -> t3 (UArray t1 t2)Source
thawUA :: (STorIO t2 s, Unboxed t1, Ix t) => UArray t t1 -> t2 (UnboxedMutableArray s t t1)Source
unsafeFreezeUA :: STorIO t3 t1 => UnboxedMutableArray t1 t t2 -> t3 (UArray t t2)Source
unsafeThawUA :: STorIO t2 s => UArray t t1 -> t2 (UnboxedMutableArray s t t1)Source
sizeOfUA :: forall i e. (Ix i, Unboxed e) => UArray i e -> IntSource
Array size in bytes
sizeOfUMA :: forall i e s. (Ix i, Unboxed e) => UnboxedMutableArray s i e -> IntSource
freezeIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => IOUArray i e -> IO (UArray i e)Source
Freeze/thaw rules for IOUArray
thawIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> IO (IOUArray i e)Source
unsafeFreezeIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => IOUArray i e -> IO (UArray i e)Source
unsafeThawIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> IO (IOUArray i e)Source
freezeSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => STUArray s i e -> ST s (UArray i e)Source
Freeze/thaw rules for STUArray
thawSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> ST s (STUArray s i e)Source
unsafeFreezeSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => STUArray s i e -> ST s (UArray i e)Source
unsafeThawSTUArray :: (Unboxed e, HasDefaultValue e, Ix i) => UArray i e -> ST s (STUArray s i e)Source
castUArray :: forall i e e'. (Ix i, Enum i, Unboxed e, Unboxed e') => UArray i e -> UArray i e'Source

Casts to arrays with different element type

Casts an UArray with one element type into UArray with a different element type. All the elements of the resulting array are undefined (unless you know what you're doing...). Upper array bound is recalculated according to elements size, for example UArray (1,2) Word32 -> UArray (1,8) Word8

castIOUArray :: forall i e e'. (Ix i, Enum i, Unboxed e, Unboxed e') => IOUArray i e -> IOUArray i e'Source
Casts an IOUArray with one element type into IOUArray with a different element type (upper bound is recalculated).
castSTUArray :: forall i e e' s. (Ix i, Enum i, Unboxed e, Unboxed e') => STUArray s i e -> STUArray s i e'Source
Casts an STUArray with one element type into STUArray with a different element type (upper bound is recalculated).
Produced by Haddock version 2.1.0