[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