Add rules for Segd operations
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Fri, 24 Apr 2009 04:16:16 +0000 (04:16 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Fri, 24 Apr 2009 04:16:16 +0000 (04:16 +0000)
dph-prim-interface/interface/DPH_Interface.h

index 680c129..1522153 100644 (file)
@@ -181,7 +181,20 @@ lengthsToSegd :: Array Int -> Segd
 {-# INLINE_BACKEND lengthsToSegd #-}
 
 mkSegd :: Array Int -> Array Int -> Int -> Segd
-{-# INLINE_BACKEND mkSegd #-}
+{-# INLINE CONLIKE PHASE_BACKEND mkSegd #-}
+
+{-# RULES
+
+"lengthsSegd/mkSegd" forall lens idxs n.
+  lengthsSegd (mkSegd lens idxs n) = lens
+
+"indicesSegd/mkSegd" forall lens idxs n.
+  indicesSegd (mkSegd lens idxs n) = idxs
+
+"elementsSegd/mkSegd" forall lens idxs n.
+  elementsSegd (mkSegd lens idxs n) = n
+
+ #-}
 
 randoms :: (Elt a, System.Random.Random a, System.Random.RandomGen g)
         => Int -> g -> Array a