Add rule for zipWith/replicate
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Thu, 27 May 2010 11:39:06 +0000 (11:39 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Thu, 27 May 2010 11:39:06 +0000 (11:39 +0000)
dph-prim-interface/interface/DPH_Interface.h

index 7ba0025..bf16529 100644 (file)
@@ -101,6 +101,13 @@ zipWith :: (Elt a, Elt b, Elt c)
         => (a -> b -> c) -> Array a -> Array b -> Array c
 {-# INLINE_BACKEND zipWith #-}
 
+{-# RULES
+
+"zipWith/replicate" forall f m n x y.
+  zipWith f (replicate m x) (replicate n y) = replicate m (f x y)
+
+  #-}
+
 zipWith3 :: (Elt a, Elt b, Elt c, Elt d)
           => (a -> b -> c -> d) -> Array a -> Array b -> Array c -> Array d
 {-# INLINE zipWith3 #-}