module Data.Array.Parallel.Unlifted.Sequential (
UA,
UArr, USegd,
lengthU, nullU, emptyU, singletonU, consU, unitsU,
replicateU, (!:), (+:+),
indexedU, repeatU,
sliceU, extractU,
tailU,
takeU, dropU, splitAtU,
permuteU, mbpermuteU, bpermuteU, bpermuteDftU, reverseU, updateU,
mapU, zipWithU, zipWith3U,
filterU, packU,
foldlU, foldl1U, foldl1MaybeU,
foldU, fold1U, fold1MaybeU,
scanlU, scanl1U,
scanU, scan1U,
scanResU,
mapAccumLU,
combineU, combineSU,
elemU, notElemU,
andU, orU, anyU, allU,
sumU, productU,
maximumU, minimumU,
maximumByU, minimumByU,
maximumIndexU, minimumIndexU,
maximumIndexByU, minimumIndexByU,
zipU, zip3U, unzipU, unzip3U, fstU, sndU,
enumFromToU, enumFromThenToU, enumFromStepLenU, enumFromToEachU, enumFromStepLenEachU,
findU, findIndexU,
toU, fromU,
randomU, randomRU,
UIO(..),
replicateSU, replicateRSU, appendSU,
foldlSU, foldSU, fold1SU,
foldlRU,
andSU, orSU,
sumSU, productSU, maximumSU, minimumSU,
sumRU,
lengthUSegd, lengthsUSegd, indicesUSegd, elementsUSegd, lengthsToUSegd, mkUSegd,
MUArr, newU, newMU, copyMU, permuteMU,
hasAtomicWriteMU, atomicUpdateMU, unsafeFreezeAllMU,
idstr, name, versnum, date, version, copyright, disclaimer,
lengthU'
) where
import Data.Array.Parallel.Base ((:*:)(..))
import Data.Array.Parallel.Unlifted.Sequential.Flat
import Data.Array.Parallel.Unlifted.Sequential.Segmented
idstr = "$Id: FIXME: Have the build-system produce an id$"
name = "Unlifted.Sequential Array Library"
versnum = "0.6.0"
date = "28 Apr 2006"
version = name ++ ", version " ++ versnum ++ ", " ++ date
copyright = "Copyright (c) [2001..2006] \
\M M T Chakravarty, G Keller & R Leshchinskiy"
disclaimer = "This software is distributed under the terms \
\of the BSD3 license. NO WARRANTY WHATSOEVER IS PROVIDED. \
\See the details in the documentation."
instance (Eq e, UA e) => Eq (UArr e) where
a1 == a2 = lengthU a1 == lengthU a2 && foldlU cmp True (zipU a1 a2)
where
cmp r (e1 :*: e2) = e1 == e2 && r