uvector-0.1: Data/Array/Vector.hs
-----------------------------------------------------------------------------
-- |
-- Module : Data.Array.Vector
-- Copyright : (c) [2001..2002] Manuel M T Chakravarty & Gabriele Keller
-- (c) 2006 Manuel M T Chakravarty & Roman Leshchinskiy
-- (c) 2008 Don Stewart
-- License : see LICENSE
--
-- Maintainer : Don Stewart
-- Portability : See .cabal file
--
-- Description ---------------------------------------------------------------
--
-- The top level interface to operations on strict, non-nested, fusible arrays.
--
--
module Data.Array.Vector (
-- * Array classes
UA,
-- * The pure and mutable array types
UArr, MUArr,
-- * Streaming pure arrays
streamU, unstreamU,
-- * Conversions to\/from lists
toU, fromU,
-- * Basic operations on pure arrays
-- ** Introducing and eliminating UArrs
emptyU,
singletonU,
-- ** Basic interface
consU,
snocU,
-- uncons
appendU,
headU,
lastU,
tailU,
initU,
nullU,
unitsU,
lengthU,
-- * Transforming UArrs
mapU,
-- * Reducing 'UArr's (folds)
foldU,
fold1U,
fold1MaybeU,
foldlU,
foldl1U,
foldl1MaybeU,
-- ** Logical operations
andU,
orU,
anyU,
allU,
-- * Arithmetic operations
sumU, productU,
maximumU, minimumU,
maximumByU, minimumByU,
-- maximumIndexU, minimumIndexU,
-- maximumIndexByU, minimumIndexByU,
-- * Building UArrs
-- ** Scans
scanlU,
scanl1U,
{-scanrU, scanr1U,-}
scanU,
scan1U,
scanResU,
-- ** Accumulating UArrs
mapAccumLU,
-- ** Generating UArrs
replicateU,
replicateEachU,
-- * Subarrays
-- ** Breaking arrays
sliceU,
-- extractU,
takeU,
dropU,
splitAtU,
takeWhileU,
dropWhileU,
{- spanU, breakU,-}
-- * Searching Arrays
-- ** Searching by equality
elemU,
notElemU,
-- ** Searching with a predicate
filterU,
findU,
-- * Indexing UArr
indexU,
findIndexU,
lookupU,
-- * Zipping and unzipping
zipU, zip3U,
unzipU, unzip3U,
zipWithU,
zipWith3U,
fstU,
sndU,
-- * Enumerations
enumFromToU,
enumFromToFracU,
enumFromThenToU,
enumFromStepLenU,
enumFromToEachU,
-- * Low level conversions
-- * Low level conversions
-- ** Copying arrays
-- ** Packing 'CString's and pointers
-- ** Using UArrs as 'CString's
-- * I\/O with 'UArr's
-- creating them, generating new arrays from old ones.
------------------------------------------------------------------------
combineU,
packU,
indexedU,
repeatU,
-- * Permutations
-- permuteU, bpermuteU, bpermuteDftU, reverseU, updateU,
-- * Searching
{- indexOfU,-}
-- * Arrays of pairs
{-crossU,-}
-- * Random arrays
-- randomU, randomRU,
unfoldU,
-- * I\/O
UIO(..),
-- * Operations on mutable arrays
newU, lengthMU, newMU, readMU, writeMU, unsafeFreezeMU, unsafeFreezeAllMU,
copyMU, permuteMU, atomicUpdateMU, unstreamMU,
module Data.Array.Vector.Prim.Hyperstrict
) where
import Data.Array.Vector.UArr (
UA, UArr, MUArr,
newU, lengthMU, newMU, readMU, writeMU, copyMU,
unsafeFreezeMU, unsafeFreezeAllMU)
import Data.Array.Vector.Prim.Hyperstrict
import Data.Array.Vector.UArr hiding (lengthU, indexU)
import Data.Array.Vector.Strict.Stream
import Data.Array.Vector.Strict.Basics
import Data.Array.Vector.Strict.Enum
import Data.Array.Vector.Strict.Sums
import Data.Array.Vector.Strict.Permute
import Data.Array.Vector.Strict.Text ()