----------------------------------------------------------------------------- -- | -- 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 ()