Hello all<br>I am trying to convert List of Lists ( [[(Int , Double )]] ) into PArray ( PArray ( Int , Double )) but getting run time error. This code works fine and print list of PArray ( Int , Double ) but when i put print $ P.fromList ( map P.fromList c ) then i am getting runtime error. It says "Main: Data/Array/Parallel/PArray/PDataInstances.hs:337:10-30: No instance nor default method for class operation Data.Array.Parallel.PArray.PData.fromListPR". Could some one please tell me how to resolve this issue. <br>
Thank you<br><br><br>--import ParallelMat<br>import Data.List<br>import System.Environment<br>import Data.Array.Parallel<br>import qualified Data.Array.Parallel.PArray as P<br><br><br>processMatrix :: [ [ Double ] ] -> [ [ Double ] ] -> [ ( [ ( Int , Double ) ] , [ ( Int , Double ) ]) ] <br>
processMatrix [] [] = []<br>processMatrix ( x : xs ) ( y : ys )<br> | ( all ( == 0 ) x ) Prelude.|| ( all ( == 0 ) y ) = processMatrix xs ys<br> | otherwise = ( filter ( \( x , y ) -> y /= 0 ) . zip [ 1..] $ x ,filter ( \( x , y ) -> y /= 0 ) . zip [1..] $ y ) : processMatrix xs ys<br>
<br>main = do<br> [ first , second ] <- getArgs <br> a <- readFile first<br> b <- readFile second<br> let a' = transpose . tail . map ( map ( read :: String -> Double ) . words ) . lines $ a<br>
b' = tail . map ( map ( read :: String -> Double ) . words ) . lines $ b<br> ( c , d ) = unzip $ processMatrix a' b'<br> print $ ( map P.fromList c )<br> --print d<br><br>Macintosh-0026bb610428:Haskell mukesh$ ghc --make -Odph -fdph-par Main.hs<br>
[1 of 1] Compiling Main ( Main.hs, Main.o )<br>Linking Main ...<br>Macintosh-0026bb610428:Haskell mukesh$ ./Main A.in A.in<br>[fromList<PArray> [(1,1.0),(6,1.0)],fromList<PArray> [(4,11.0),(9,11.0)],fromList<PArray> [(1,4.0),(4,2.0),(6,4.0),(9,2.0)]]<br>
<br>Putting print $ P.fromList ( map P.fromList c )<br><br>Macintosh-0026bb610428:Haskell mukesh$ ghc --make -Odph -fdph-par Main.hs<br>[1 of 1] Compiling Main ( Main.hs, Main.o )<br>Linking Main ...<br>Macintosh-0026bb610428:Haskell mukesh$ ./Main A.in A.in<br>
Main: Data/Array/Parallel/PArray/PDataInstances.hs:337:10-30: No instance nor default method for class operation Data.Array.Parallel.PArray.PData.fromListPR<br><br>Input file A.in<br>10 10<br>1 2 3 0 0 0 0 0 0 4<br>0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0<br>0 0 0 0 0 0 1 2 11 2<br>0 1 2 0 0 0 0 0 0 0<br>1 2 3 0 0 0 0 0 0 4<br>0 0 0 0 0 0 0 0 0 0<br>0 0 0 0 0 0 0 0 0 0<br>0 0 0 0 0 0 1 2 11 2<br>0 1 2 0 0 0 0 0 0 0