dph-examples: add some more broken tests
authorBen Lippmeier <benl@ouroborus.net>
Tue, 22 Nov 2011 07:43:59 +0000 (18:43 +1100)
committerBen Lippmeier <benl@ouroborus.net>
Tue, 22 Nov 2011 07:43:59 +0000 (18:43 +1100)
dph-examples/broken/Other/Main.hs [new file with mode: 0644]
dph-examples/broken/Other/Vectorised.hs [new file with mode: 0644]
dph-examples/broken/Tree/Solver.hs

diff --git a/dph-examples/broken/Other/Main.hs b/dph-examples/broken/Other/Main.hs
new file mode 100644 (file)
index 0000000..72cb662
--- /dev/null
@@ -0,0 +1,7 @@
+
+-- | Test vectorisation of enumerations.
+--   This tests the conversion to and from our generic representation.
+import Vectorised
+import qualified Data.Array.Parallel.PArray     as P
+
+main    = print $ P.toList $ test $ P.fromList [0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1]
\ No newline at end of file
diff --git a/dph-examples/broken/Other/Vectorised.hs b/dph-examples/broken/Other/Vectorised.hs
new file mode 100644 (file)
index 0000000..730f229
--- /dev/null
@@ -0,0 +1,29 @@
+
+{-# LANGUAGE ParallelArrays #-}
+{-# OPTIONS -fvectorise #-}
+module Vectorised where
+import Data.Array.Parallel              hiding (Bool, True, False, not)
+import Data.Array.Parallel.Prelude      hiding (Bool, True, False, not)
+import Data.Array.Parallel.Prelude.Int
+import qualified Prelude        as P
+
+data Thing      = True | False
+data Bool       = Thing Thing
+
+toBool :: Int -> Bool
+toBool n
+ | n == 0       = Thing False
+ | otherwise    = Thing True
+
+fromBool :: Bool -> Int
+fromBool (Thing False)  = 0
+fromBool (Thing True)   = 1
+
+not :: Bool -> Bool
+not (Thing False)       = Thing True
+not (Thing True)        = Thing False
+
+{-# NOINLINE test #-}
+test :: PArray Int -> PArray Int
+test xs = toPArrayP (mapP test' (fromPArrayP xs))
+test' x = fromBool (not (toBool x))
index e269c41..e969c61 100644 (file)
@@ -4,7 +4,6 @@ module Solver where
 import Data.Array.Parallel.Prelude
 import Data.Array.Parallel.Prelude.Int
 
-data Thing
--- data Nothing 
-        
+data Thing = Thing Int [:Thing:]
+
         
\ No newline at end of file