Ticket #7098: CprodP.hs

File CprodP.hs, 900 bytes (added by Prasanna, 21 months ago)
Line 
1{-# LANGUAGE ParallelArrays #-}
2{-# OPTIONS_GHC -fvectorise #-}
3module CprodP (cprod_wrapper2) 
4where
5
6import qualified Prelude
7import Data.Array.Parallel
8import Data.Array.Parallel.Prelude
9import Data.Array.Parallel.Prelude.Int
10--import Data.Array.Parallel.Unlifted
11
12arr1 = [:[:1,2,3:],[:4,5:]:]
13arr2 = [:[:[:7,10:]:],[:[:8,9,11,12:]:]:]
14
15cprod_wrapper2::Int -> PArray (PArray (PArray Int))
16cprod_wrapper2 _ = toPArrayP (mapP cprod_wrapper arr2)                       
17
18cprod_wrapper::[:[:Int:]:] -> (PArray (PArray Int))
19cprod_wrapper ele  = toPArrayP (mapP toPArrayP (sliceP 1 (lengthP ele Data.Array.Parallel.Prelude.Int.- 2) ele))
20
21--cprodP::[:[:Int:]:] -> [:[:Int:]:]
22--cprodP x | lengthP x Data.Array.Parallel.Prelude.Int.== 1 =  [:[:y:] | y <- (x !: 0):]
23--         | otherwise = [: concatP[:[:y:], ys:] | ys <- (cprodP (dropP x 1)), y <- (x!:0) :]
24
25
26
27
28                                   
29
30