diff options
author | Alberto Ruiz <aruiz@um.es> | 2007-06-05 10:09:17 +0000 |
---|---|---|
committer | Alberto Ruiz <aruiz@um.es> | 2007-06-05 10:09:17 +0000 |
commit | 1fb4ea70c517050d3cbad75357a4fffbf5a40e7b (patch) | |
tree | 6107b470be9300297f9f08a4280fbf46faf6a862 /lib/Data/Packed/Internal/Matrix.hs | |
parent | 7430630fa0504296b796223e01cbd417b88650ef (diff) |
working on contraction
Diffstat (limited to 'lib/Data/Packed/Internal/Matrix.hs')
-rw-r--r-- | lib/Data/Packed/Internal/Matrix.hs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/Data/Packed/Internal/Matrix.hs b/lib/Data/Packed/Internal/Matrix.hs index 2c57c07..a6f7f0c 100644 --- a/lib/Data/Packed/Internal/Matrix.hs +++ b/lib/Data/Packed/Internal/Matrix.hs | |||
@@ -107,13 +107,17 @@ transdataR = transdataAux ctransR | |||
107 | transdataC :: Int -> Vector (Complex Double) -> Int -> Vector (Complex Double) | 107 | transdataC :: Int -> Vector (Complex Double) -> Int -> Vector (Complex Double) |
108 | transdataC = transdataAux ctransC | 108 | transdataC = transdataAux ctransC |
109 | 109 | ||
110 | transdataAux fun c1 d c2 = unsafePerformIO $ do | 110 | transdataAux fun c1 d c2 = |
111 | v <- createVector (dim d) | 111 | if noneed |
112 | let r1 = dim d `div` c1 | 112 | then d |
113 | else unsafePerformIO $ do | ||
114 | v <- createVector (dim d) | ||
115 | fun r1 c1 (ptr d) r2 c2 (ptr v) // check "transdataAux" [d] | ||
116 | putStrLn "---> transdataAux" | ||
117 | return v | ||
118 | where r1 = dim d `div` c1 | ||
113 | r2 = dim d `div` c2 | 119 | r2 = dim d `div` c2 |
114 | fun r1 c1 (ptr d) r2 c2 (ptr v) // check "transdataAux" [d] | 120 | noneed = r1 == 1 || c1 == 1 |
115 | --putStrLn "---> transdataAux" | ||
116 | return v | ||
117 | 121 | ||
118 | foreign import ccall safe "aux.h transR" | 122 | foreign import ccall safe "aux.h transR" |
119 | ctransR :: Double ::> Double ::> IO Int | 123 | ctransR :: Double ::> Double ::> IO Int |