diff options
Diffstat (limited to 'lib/Numeric/LinearAlgebra')
-rw-r--r-- | lib/Numeric/LinearAlgebra/Algorithms.hs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Numeric/LinearAlgebra/Algorithms.hs b/lib/Numeric/LinearAlgebra/Algorithms.hs index bea33ea..a6b4dae 100644 --- a/lib/Numeric/LinearAlgebra/Algorithms.hs +++ b/lib/Numeric/LinearAlgebra/Algorithms.hs | |||
@@ -567,6 +567,11 @@ epslist = [ (fromIntegral k, golubeps k k) | k <- [1..]] | |||
567 | 567 | ||
568 | geps delta = head [ k | (k,g) <- epslist, g<delta] | 568 | geps delta = head [ k | (k,g) <- epslist, g<delta] |
569 | 569 | ||
570 | expGolub :: ( Fractional t, Element t, Field t | ||
571 | , Normed Matrix t | ||
572 | , RealFrac (RealOf t) | ||
573 | , Floating (RealOf t) | ||
574 | ) => Matrix t -> Matrix t | ||
570 | expGolub m = iterate msq f !! j | 575 | expGolub m = iterate msq f !! j |
571 | where j = max 0 $ floor $ logBase 2 $ pnorm Infinity m | 576 | where j = max 0 $ floor $ logBase 2 $ pnorm Infinity m |
572 | a = m */ fromIntegral ((2::Int)^j) | 577 | a = m */ fromIntegral ((2::Int)^j) |