[commit: dph] master: Comments and formatting to dph-prim-par/D.A.P.Unlifted (9fe2976)
Ben Lippmeier
benl at ouroborus.net
Wed Apr 13 08:04:14 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/dph
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/9fe2976d9a7e357423d7af0f6b5f328ffe6aa3a5
>---------------------------------------------------------------
commit 9fe2976d9a7e357423d7af0f6b5f328ffe6aa3a5
Author: benl23 <benl at ouroborus.net>
Date: Thu Apr 7 14:12:10 2011 +1000
Comments and formatting to dph-prim-par/D.A.P.Unlifted
>---------------------------------------------------------------
dph-prim-par/Data/Array/Parallel/Unlifted.hs | 158 ++++++++++++++------------
1 files changed, 86 insertions(+), 72 deletions(-)
diff --git a/dph-prim-par/Data/Array/Parallel/Unlifted.hs b/dph-prim-par/Data/Array/Parallel/Unlifted.hs
index 7eb1b7d..4edecda 100644
--- a/dph-prim-par/Data/Array/Parallel/Unlifted.hs
+++ b/dph-prim-par/Data/Array/Parallel/Unlifted.hs
@@ -1,90 +1,104 @@
{-# LANGUAGE PackageImports, CPP #-}
+-- | Primitive parallel combinators that work on flat, unlifted arrays.
+-- Some of them don't actually have parallel implementations, so we bail out
+-- to the regular sequential ones.
+--
+-- This set of combinators is used when the program is comiled with -fdph-par.
+-- When compiling with -fdph-seq, the ones in the dph-prim-seq package are used
+-- instead. The dph-prim-seq package exports the same names, but all combinators
+-- are implemented sequentially.
+--
+-- The API is defined in DPH_Header.h and DPH_Interface.h to ensure that both
+-- dph-prim-par and dph-prim-seq really do export the same symbols.
+
#include "DPH_Header.h"
import Data.Array.Parallel.Unlifted.Parallel
import Data.Array.Parallel.Unlifted.Distributed ( DT )
-import qualified Data.Array.Parallel.Unlifted.Sequential.Vector as Seq
-import qualified Data.Array.Parallel.Unlifted.Sequential.Segmented as Seq
+import qualified Data.Array.Parallel.Unlifted.Sequential.Vector as Seq
+import qualified Data.Array.Parallel.Unlifted.Sequential.Segmented as Seq
import Data.Array.Parallel.Unlifted.Sequential.Vector (Unbox,Vector)
#include "DPH_Interface.h"
class (Unbox a, DT a) => Elt a
-type Array = Vector
-type Segd = UPSegd
-type Sel2 = UPSel2
-type SelRep2 = UPSelRep2
-length = Seq.length
-empty = Seq.empty
-replicate = replicateUP
-repeat n _ = repeatUP n
-(!:) = (Seq.!)
-extract = Seq.extract
-drop = dropUP
-permute = Seq.permute
-bpermuteDft = Seq.bpermuteDft
-bpermute = bpermuteUP
-mbpermute = Seq.mbpermute
-update = updateUP
-(+:+) = (Seq.++)
-interleave = interleaveUP
-pack = packUP
-combine = combineUP
-combine2 = combine2UP
-map = mapUP
-filter = filterUP
-zip = Seq.zip
-unzip = Seq.unzip
--- zip3 = V.zip3
--- unzip3 = V.unzip3
-fsts = Seq.fsts
-snds = Seq.snds
-zipWith = zipWithUP
-fold = foldUP
-fold1 = Seq.fold1
-and = andUP
-sum = sumUP
-scan = scanUP
-indexed = indexedUP
-enumFromTo = enumFromToUP
-enumFromThenTo = enumFromThenToUP
-enumFromStepLen = enumFromStepLenUP
-enumFromStepLenEach =enumFromStepLenEachUP
+type Array = Vector
+type Segd = UPSegd
+type Sel2 = UPSel2
+type SelRep2 = UPSelRep2
-mkSel2 = mkUPSel2
-tagsSel2 = tagsUPSel2
-indicesSel2 = indicesUPSel2
-elementsSel2_0 = elementsUPSel2_0
-elementsSel2_1 = elementsUPSel2_1
-repSel2 = repUPSel2
+length = Seq.length
+empty = Seq.empty
+replicate = replicateUP
+repeat n _ = repeatUP n
+(!:) = (Seq.!)
+extract = Seq.extract
+drop = dropUP
+permute = Seq.permute
+bpermuteDft = Seq.bpermuteDft
+bpermute = bpermuteUP
+mbpermute = Seq.mbpermute
+update = updateUP
+(+:+) = (Seq.++)
+interleave = interleaveUP
+pack = packUP
+combine = combineUP
+combine2 = combine2UP
+map = mapUP
+filter = filterUP
+zip = Seq.zip
+unzip = Seq.unzip
+-- zip3 = V.zip3
+-- unzip3 = V.unzip3
+fsts = Seq.fsts
+snds = Seq.snds
+zipWith = zipWithUP
+fold = foldUP
+fold1 = Seq.fold1
+and = andUP
+sum = sumUP
+scan = scanUP
+indexed = indexedUP
+enumFromTo = enumFromToUP
+enumFromThenTo = enumFromThenToUP
+enumFromStepLen = enumFromStepLenUP
+enumFromStepLenEach = enumFromStepLenEachUP
-mkSelRep2 = mkUPSelRep2
-indicesSelRep2 = indicesUPSelRep2
-elementsSelRep2_0 = elementsUPSelRep2_0
-elementsSelRep2_1 = elementsUPSelRep2_1
+mkSel2 = mkUPSel2
+tagsSel2 = tagsUPSel2
+indicesSel2 = indicesUPSel2
+elementsSel2_0 = elementsUPSel2_0
+elementsSel2_1 = elementsUPSel2_1
+repSel2 = repUPSel2
-replicate_s = replicateSUP
-replicate_rs = replicateRSUP
-append_s = appendSUP
-fold_s = foldSUP
-fold1_s = fold1SUP
-fold_r = Seq.foldlRU
-sum_r = sumRUP
+mkSelRep2 = mkUPSelRep2
+indicesSelRep2 = indicesUPSelRep2
+elementsSelRep2_0 = elementsUPSelRep2_0
+elementsSelRep2_1 = elementsUPSelRep2_1
-indices_s segd = indicesSUP segd
+replicate_s = replicateSUP
+replicate_rs = replicateRSUP
+append_s = appendSUP
+fold_s = foldSUP
+fold1_s = fold1SUP
+fold_r = Seq.foldlRU
+sum_r = sumRUP
-lengthSegd = lengthUPSegd
-lengthsSegd = lengthsUPSegd
-indicesSegd = indicesUPSegd
-elementsSegd = elementsUPSegd
-mkSegd = mkUPSegd
-randoms = Seq.random
-randomRs = Seq.randomR
-class Seq.UIO a => IOElt a
-hPut = Seq.hPut
-hGet = Seq.hGet
-toList = Seq.toList
-fromList = Seq.fromList
+indices_s segd = indicesSUP segd
+
+lengthSegd = lengthUPSegd
+lengthsSegd = lengthsUPSegd
+indicesSegd = indicesUPSegd
+elementsSegd = elementsUPSegd
+mkSegd = mkUPSegd
+randoms = Seq.random
+randomRs = Seq.randomR
+
+class Seq.UIO a => IOElt a
+hPut = Seq.hPut
+hGet = Seq.hGet
+toList = Seq.toList
+fromList = Seq.fromList
More information about the Cvs-libraries
mailing list