diff options
Diffstat (limited to 'packages/base/src/Numeric')
-rw-r--r-- | packages/base/src/Numeric/LinearAlgebra/LAPACK.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/packages/base/src/Numeric/LinearAlgebra/LAPACK.hs b/packages/base/src/Numeric/LinearAlgebra/LAPACK.hs index d96e14f..219d996 100644 --- a/packages/base/src/Numeric/LinearAlgebra/LAPACK.hs +++ b/packages/base/src/Numeric/LinearAlgebra/LAPACK.hs | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | module Numeric.LinearAlgebra.LAPACK ( | 15 | module Numeric.LinearAlgebra.LAPACK ( |
16 | -- * Matrix product | 16 | -- * Matrix product |
17 | multiplyR, multiplyC, multiplyF, multiplyQ, | 17 | multiplyR, multiplyC, multiplyF, multiplyQ, multiplyI, |
18 | -- * Linear systems | 18 | -- * Linear systems |
19 | linearSolveR, linearSolveC, | 19 | linearSolveR, linearSolveC, |
20 | mbLinearSolveR, mbLinearSolveC, | 20 | mbLinearSolveR, mbLinearSolveC, |
@@ -58,6 +58,7 @@ foreign import ccall unsafe "multiplyR" dgemmc :: CInt -> CInt -> TMMM | |||
58 | foreign import ccall unsafe "multiplyC" zgemmc :: CInt -> CInt -> TCMCMCM | 58 | foreign import ccall unsafe "multiplyC" zgemmc :: CInt -> CInt -> TCMCMCM |
59 | foreign import ccall unsafe "multiplyF" sgemmc :: CInt -> CInt -> TFMFMFM | 59 | foreign import ccall unsafe "multiplyF" sgemmc :: CInt -> CInt -> TFMFMFM |
60 | foreign import ccall unsafe "multiplyQ" cgemmc :: CInt -> CInt -> TQMQMQM | 60 | foreign import ccall unsafe "multiplyQ" cgemmc :: CInt -> CInt -> TQMQMQM |
61 | foreign import ccall unsafe "multiplyI" c_multiplyI :: CInt -> CInt -> (CM CInt (CM CInt (CM CInt (IO CInt)))) | ||
61 | 62 | ||
62 | isT Matrix{order = ColumnMajor} = 0 | 63 | isT Matrix{order = ColumnMajor} = 0 |
63 | isT Matrix{order = RowMajor} = 1 | 64 | isT Matrix{order = RowMajor} = 1 |
@@ -88,6 +89,10 @@ multiplyF a b = multiplyAux sgemmc "sgemmc" a b | |||
88 | multiplyQ :: Matrix (Complex Float) -> Matrix (Complex Float) -> Matrix (Complex Float) | 89 | multiplyQ :: Matrix (Complex Float) -> Matrix (Complex Float) -> Matrix (Complex Float) |
89 | multiplyQ a b = multiplyAux cgemmc "cgemmc" a b | 90 | multiplyQ a b = multiplyAux cgemmc "cgemmc" a b |
90 | 91 | ||
92 | multiplyI :: Matrix CInt -> Matrix CInt -> Matrix CInt | ||
93 | multiplyI = multiplyAux c_multiplyI "c_multiplyI" | ||
94 | |||
95 | |||
91 | ----------------------------------------------------------------------------- | 96 | ----------------------------------------------------------------------------- |
92 | foreign import ccall unsafe "svd_l_R" dgesvd :: TMMVM | 97 | foreign import ccall unsafe "svd_l_R" dgesvd :: TMMVM |
93 | foreign import ccall unsafe "svd_l_C" zgesvd :: TCMCMVCM | 98 | foreign import ccall unsafe "svd_l_C" zgesvd :: TCMCMVCM |