{-# LANGUAGE MagicHash #-}
#include "fusion-phases.h"
module Data.Array.Parallel.Unlifted (
-- * Types
Elt, Array,
-- * Constructors
empty,
generate,
replicate, replicate_s, replicate_rs,
repeat,
indexed,
(+:+),
append_s, append_vs,
indices_s,
enumFromTo,
enumFromThenTo,
enumFromStepLen,
enumFromStepLenEach,
-- * Projections
length,
index,
indexs,
indexs_avs,
extract,
extracts_nss,
extracts_ass,
extracts_avs,
drop,
-- * Update
update,
-- * Permutation
permute,
bpermute,
mbpermute,
bpermuteDft,
-- * Zipping and Unzipping
zip, zip3,
unzip, unzip3,
fsts, snds,
-- * Map and ZipWith
map, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7, zipWith8,
-- * Scans and Folds
scan,
fold, fold_s, fold_ss, fold_vs, fold_r,
fold1, fold1_s, fold1_ss, fold1_vs,
sum, sum_s, sum_ss, sum_r,
count, count_s, count_ss,
and,
-- * Pack and Filter
pack,
packByTag,
filter,
pick,
-- * Combine and Interleave
combine, combine2,
interleave,
-- * Selectors
Sel2,
mkSel2,
tagsSel2,
indicesSel2,
elementsSel2_0,
elementsSel2_1,
repSel2,
tagsToSel2,
-- * Selector Representations
SelRep2,
mkSelRep2,
indicesSelRep2,
elementsSelRep2_0,
elementsSelRep2_1,
-- * Segment Descriptors
Segd,
mkSegd,
validSegd,
emptySegd,
singletonSegd,
lengthsToSegd,
lengthSegd,
lengthsSegd,
indicesSegd,
elementsSegd,
plusSegd,
-- * Scattered Segment Descriptors
SSegd,
mkSSegd,
validSSegd,
emptySSegd,
singletonSSegd,
promoteSegdToSSegd,
isContiguousSSegd,
lengthOfSSegd,
lengthsOfSSegd,
indicesOfSSegd,
startsOfSSegd,
sourcesOfSSegd,
getSegOfSSegd,
appendSSegd,
-- * Virtual Segment Descriptors
VSegd,
mkVSegd,
validVSegd,
emptyVSegd,
singletonVSegd,
replicatedVSegd,
promoteSegdToVSegd,
promoteSSegdToVSegd,
isManifestVSegd,
isContiguousVSegd,
lengthOfVSegd,
takeVSegidsOfVSegd,
takeVSegidsRedundantOfVSegd,
takeSSegdOfVSegd,
takeSSegdRedundantOfVSegd,
takeLengthsOfVSegd,
getSegOfVSegd,
unsafeDemoteToSSegdOfVSegd,
unsafeDemoteToSegdOfVSegd,
updateVSegsOfVSegd,
updateVSegsReachableOfVSegd,
appendVSegd,
combine2VSegd,
-- * Irregular two dimensional arrays
Elts, Arrays,
emptys,
singletons,
lengths,
unsafeIndexs,
unsafeIndex2s,
appends,
fromVectors,
toVectors,
-- * Random arrays
randoms, randomRs,
-- * Array IO
IOElt, hGet, hPut,
toList, fromList,
) where
import Prelude (Num, Int, Bool, Float, Double)
import System.IO (IO, Handle)
import Data.Word (Word8)
import qualified System.Random
import qualified Prelude
import qualified Data.Vector as VV