summaryrefslogtreecommitdiff
path: root/lib/Data/Packed/Internal/Matrix.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Data/Packed/Internal/Matrix.hs')
-rw-r--r--lib/Data/Packed/Internal/Matrix.hs20
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/Data/Packed/Internal/Matrix.hs b/lib/Data/Packed/Internal/Matrix.hs
index e76500b..bf7f0ec 100644
--- a/lib/Data/Packed/Internal/Matrix.hs
+++ b/lib/Data/Packed/Internal/Matrix.hs
@@ -240,9 +240,9 @@ transdataAux fun c1 d c2 =
240 r2 = dim d `div` c2 240 r2 = dim d `div` c2
241 noneed = r1 == 1 || c1 == 1 241 noneed = r1 == 1 || c1 == 1
242 242
243foreign import ccall safe "aux.h transR" 243foreign import ccall safe "auxi.h transR"
244 ctransR :: TMM -- Double ::> Double ::> IO Int 244 ctransR :: TMM -- Double ::> Double ::> IO Int
245foreign import ccall safe "aux.h transC" 245foreign import ccall safe "auxi.h transC"
246 ctransC :: TCMCM -- Complex Double ::> Complex Double ::> IO Int 246 ctransC :: TCMCM -- Complex Double ::> Complex Double ::> IO Int
247 247
248------------------------------------------------------------------ 248------------------------------------------------------------------
@@ -258,14 +258,14 @@ multiplyAux fun a b = unsafePerformIO $ do
258 return r 258 return r
259 259
260multiplyR = multiplyAux cmultiplyR 260multiplyR = multiplyAux cmultiplyR
261foreign import ccall safe "aux.h multiplyR" 261foreign import ccall safe "auxi.h multiplyR"
262 cmultiplyR :: Int -> Int -> Int -> Ptr Double 262 cmultiplyR :: Int -> Int -> Int -> Ptr Double
263 -> Int -> Int -> Int -> Ptr Double 263 -> Int -> Int -> Int -> Ptr Double
264 -> Int -> Int -> Ptr Double 264 -> Int -> Int -> Ptr Double
265 -> IO Int 265 -> IO Int
266 266
267multiplyC = multiplyAux cmultiplyC 267multiplyC = multiplyAux cmultiplyC
268foreign import ccall safe "aux.h multiplyC" 268foreign import ccall safe "auxi.h multiplyC"
269 cmultiplyC :: Int -> Int -> Int -> Ptr (Complex Double) 269 cmultiplyC :: Int -> Int -> Int -> Ptr (Complex Double)
270 -> Int -> Int -> Int -> Ptr (Complex Double) 270 -> Int -> Int -> Int -> Ptr (Complex Double)
271 -> Int -> Int -> Ptr (Complex Double) 271 -> Int -> Int -> Ptr (Complex Double)
@@ -288,7 +288,7 @@ subMatrixR (r0,c0) (rt,ct) x = unsafePerformIO $ do
288 r <- createMatrix RowMajor rt ct 288 r <- createMatrix RowMajor rt ct
289 c_submatrixR r0 (r0+rt-1) c0 (c0+ct-1) // mat cdat x // mat dat r // check "subMatrixR" [dat r] 289 c_submatrixR r0 (r0+rt-1) c0 (c0+ct-1) // mat cdat x // mat dat r // check "subMatrixR" [dat r]
290 return r 290 return r
291foreign import ccall "aux.h submatrixR" c_submatrixR :: Int -> Int -> Int -> Int -> TMM 291foreign import ccall "auxi.h submatrixR" c_submatrixR :: Int -> Int -> Int -> Int -> TMM
292 292
293-- | extraction of a submatrix from a complex matrix 293-- | extraction of a submatrix from a complex matrix
294subMatrixC :: (Int,Int) -> (Int,Int) -> Matrix (Complex Double) -> Matrix (Complex Double) 294subMatrixC :: (Int,Int) -> (Int,Int) -> Matrix (Complex Double) -> Matrix (Complex Double)
@@ -316,12 +316,12 @@ diagAux fun msg (v@V {dim = n}) = unsafePerformIO $ do
316-- | diagonal matrix from a real vector 316-- | diagonal matrix from a real vector
317diagR :: Vector Double -> Matrix Double 317diagR :: Vector Double -> Matrix Double
318diagR = diagAux c_diagR "diagR" 318diagR = diagAux c_diagR "diagR"
319foreign import ccall "aux.h diagR" c_diagR :: TVM 319foreign import ccall "auxi.h diagR" c_diagR :: TVM
320 320
321-- | diagonal matrix from a real vector 321-- | diagonal matrix from a real vector
322diagC :: Vector (Complex Double) -> Matrix (Complex Double) 322diagC :: Vector (Complex Double) -> Matrix (Complex Double)
323diagC = diagAux c_diagC "diagC" 323diagC = diagAux c_diagC "diagC"
324foreign import ccall "aux.h diagC" c_diagC :: TCVCM 324foreign import ccall "auxi.h diagC" c_diagC :: TCVCM
325 325
326-- | creates a square matrix with the given diagonal 326-- | creates a square matrix with the given diagonal
327diag :: Field a => Vector a -> Matrix a 327diag :: Field a => Vector a -> Matrix a
@@ -338,12 +338,12 @@ constantAux fun x n = unsafePerformIO $ do
338 338
339constantR :: Double -> Int -> Vector Double 339constantR :: Double -> Int -> Vector Double
340constantR = constantAux cconstantR 340constantR = constantAux cconstantR
341foreign import ccall safe "aux.h constantR" 341foreign import ccall safe "auxi.h constantR"
342 cconstantR :: Ptr Double -> TV -- Double :> IO Int 342 cconstantR :: Ptr Double -> TV -- Double :> IO Int
343 343
344constantC :: Complex Double -> Int -> Vector (Complex Double) 344constantC :: Complex Double -> Int -> Vector (Complex Double)
345constantC = constantAux cconstantC 345constantC = constantAux cconstantC
346foreign import ccall safe "aux.h constantC" 346foreign import ccall safe "auxi.h constantC"
347 cconstantC :: Ptr (Complex Double) -> TCV -- Complex Double :> IO Int 347 cconstantC :: Ptr (Complex Double) -> TCV -- Complex Double :> IO Int
348 348
349{- | creates a vector with a given number of equal components: 349{- | creates a vector with a given number of equal components:
@@ -381,7 +381,7 @@ fromFile filename (r,c) = do
381 c_gslReadMatrix charname // mat dat res // check "gslReadMatrix" [] 381 c_gslReadMatrix charname // mat dat res // check "gslReadMatrix" []
382 --free charname -- TO DO: free the auxiliary CString 382 --free charname -- TO DO: free the auxiliary CString
383 return res 383 return res
384foreign import ccall "aux.h matrix_fscanf" c_gslReadMatrix:: Ptr CChar -> TM 384foreign import ccall "auxi.h matrix_fscanf" c_gslReadMatrix:: Ptr CChar -> TM
385 385
386------------------------------------------------------------------------- 386-------------------------------------------------------------------------
387 387