Add zip3S
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Sat, 7 Mar 2009 14:56:39 +0000 (14:56 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Sat, 7 Mar 2009 14:56:39 +0000 (14:56 +0000)
dph-base/Data/Array/Parallel/Stream/Flat.hs
dph-base/Data/Array/Parallel/Stream/Flat/Combinators.hs
dph-base/Data/Array/Parallel/Stream/Segmented.hs

index b65566a..36b78f4 100644 (file)
@@ -21,7 +21,7 @@ module Data.Array.Parallel.Stream.Flat (
   toStream, fromStream,
 
   mapS, filterS, foldS, fold1MaybeS, scanS, scan1S, mapAccumS,
-  zipWithS, zipWith3S, zipS, combineS,
+  zipWithS, zipWith3S, zipS, zip3S, combineS,
 
   findS, findIndexS,
 
index 2ad2393..9182788 100644 (file)
@@ -18,7 +18,7 @@
 
 module Data.Array.Parallel.Stream.Flat.Combinators (
   mapS, filterS, foldS, fold1MaybeS, scanS, scan1S, mapAccumS,
-  zipWithS, zipWith3S, zipS, combineS
+  zipWithS, zipWith3S, zipS, zip3S, combineS
 ) where
 
 import Data.Array.Parallel.Base (
@@ -218,3 +218,7 @@ zipS :: Stream a -> Stream b -> Stream (a :*: b)
 {-# INLINE zipS #-}
 zipS = zipWithS (:*:)
 
+zip3S :: Stream a -> Stream b -> Stream c -> Stream (a :*: b :*: c)
+{-# INLINE zip3S #-}
+zip3S = zipWith3S (\x y z -> x :*: y :*: z)
+
index 511935a..87f863b 100644 (file)
@@ -34,7 +34,7 @@ data SStream a = SStream { segd   :: Stream Int
 segmentS :: Stream Int -> Stream a -> SStream a
 {-# INLINE segmentS #-}
 segmentS = SStream
-        
+
 foldValuesSS :: (a -> b -> a) -> a -> SStream b -> Stream a
 {-# INLINE_STREAM foldValuesSS #-}
 foldValuesSS f z  (SStream (Stream nexts ss ns) (Stream nextv vs nv)) =