diff options
Diffstat (limited to 'examples/tests.hs')
-rw-r--r-- | examples/tests.hs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/examples/tests.hs b/examples/tests.hs index 0a09ced..2f3b3d8 100644 --- a/examples/tests.hs +++ b/examples/tests.hs | |||
@@ -6,10 +6,9 @@ | |||
6 | 6 | ||
7 | ----------------------------------------------------------------------------- | 7 | ----------------------------------------------------------------------------- |
8 | 8 | ||
9 | import Data.Packed.Internal | 9 | import Data.Packed.Internal((>|<), fdat, cdat, multiply', multiplyG, MatrixOrder(..)) |
10 | import Data.Packed.Vector | 10 | import Data.Packed.Vector |
11 | import Data.Packed.Matrix | 11 | import Data.Packed.Matrix |
12 | import Data.Packed.Internal.Matrix | ||
13 | import GSL.Vector | 12 | import GSL.Vector |
14 | import GSL.Integration | 13 | import GSL.Integration |
15 | import GSL.Differentiation | 14 | import GSL.Differentiation |
@@ -95,6 +94,8 @@ asC m = (rows m >< cols m) $ toList (cdat m) | |||
95 | mulC a b = multiply' RowMajor a b | 94 | mulC a b = multiply' RowMajor a b |
96 | mulF a b = multiply' ColumnMajor a b | 95 | mulF a b = multiply' ColumnMajor a b |
97 | 96 | ||
97 | identC = comp . ident | ||
98 | |||
98 | infixl 7 <> | 99 | infixl 7 <> |
99 | a <> b = mulF a b | 100 | a <> b = mulF a b |
100 | 101 | ||
@@ -198,15 +199,15 @@ svdTestR fun m = u <> s <> trans v |~| m | |||
198 | 199 | ||
199 | 200 | ||
200 | svdTestC m = u <> s' <> (trans v) |~| m | 201 | svdTestC m = u <> s' <> (trans v) |~| m |
201 | && u <> conjTrans u |~| ident (rows m) | 202 | && u <> conjTrans u |~| identC (rows m) |
202 | && v <> conjTrans v |~| ident (cols m) | 203 | && v <> conjTrans v |~| identC (cols m) |
203 | where (u,s,v) = svdC m | 204 | where (u,s,v) = svdC m |
204 | s' = liftMatrix comp s | 205 | s' = liftMatrix comp s |
205 | 206 | ||
206 | --svdg' m = (u,s',v) where | 207 | --svdg' m = (u,s',v) where |
207 | 208 | ||
208 | eigTestC (SqM m) = (m <> v) |~| (v <> diag s) | 209 | eigTestC (SqM m) = (m <> v) |~| (v <> diag s) |
209 | && takeDiag (conjTrans v <> v) |~| constant 1 (rows m) --normalized | 210 | && takeDiag (conjTrans v <> v) |~| comp (constant 1 (rows m)) --normalized |
210 | where (s,v) = eigC m | 211 | where (s,v) = eigC m |
211 | 212 | ||
212 | eigTestR (SqM m) = (liftMatrix comp m <> v) |~| (v <> diag s) | 213 | eigTestR (SqM m) = (liftMatrix comp m <> v) |~| (v <> diag s) |
@@ -218,7 +219,7 @@ eigTestS (Sym m) = (m <> v) |~| (v <> diag s) | |||
218 | where (s,v) = eigS m | 219 | where (s,v) = eigS m |
219 | 220 | ||
220 | eigTestH (Her m) = (m <> v) |~| (v <> diag (comp s)) | 221 | eigTestH (Her m) = (m <> v) |~| (v <> diag (comp s)) |
221 | && v <> conjTrans v |~| ident (cols m) | 222 | && v <> conjTrans v |~| identC (cols m) |
222 | where (s,v) = eigH m | 223 | where (s,v) = eigH m |
223 | 224 | ||
224 | linearSolveSQTest fun singu (PairSM a b) = singu a || (a <> fun a b) |~| b | 225 | linearSolveSQTest fun singu (PairSM a b) = singu a || (a <> fun a b) |~| b |
@@ -248,11 +249,11 @@ identC n = toComplex(ident n, (0::Double) <>ident n) | |||
248 | pinvTest f m = (m <> f m <> m) |~| m | 249 | pinvTest f m = (m <> f m <> m) |~| m |
249 | 250 | ||
250 | pinvR m = linearSolveLSR m (ident (rows m)) | 251 | pinvR m = linearSolveLSR m (ident (rows m)) |
251 | pinvC m = linearSolveLSC m (ident (rows m)) | 252 | pinvC m = linearSolveLSC m (identC (rows m)) |
252 | 253 | ||
253 | pinvSVDR m = linearSolveSVDR Nothing m (ident (rows m)) | 254 | pinvSVDR m = linearSolveSVDR Nothing m (ident (rows m)) |
254 | 255 | ||
255 | pinvSVDC m = linearSolveSVDC Nothing m (ident (rows m)) | 256 | pinvSVDC m = linearSolveSVDC Nothing m (identC (rows m)) |
256 | 257 | ||
257 | -------------------------------------------------------------------- | 258 | -------------------------------------------------------------------- |
258 | 259 | ||