diff options
Diffstat (limited to 'lib/Numeric/LinearAlgebra/Algorithms.hs')
-rw-r--r-- | lib/Numeric/LinearAlgebra/Algorithms.hs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Numeric/LinearAlgebra/Algorithms.hs b/lib/Numeric/LinearAlgebra/Algorithms.hs index f4f8bca..dd93db2 100644 --- a/lib/Numeric/LinearAlgebra/Algorithms.hs +++ b/lib/Numeric/LinearAlgebra/Algorithms.hs | |||
@@ -392,7 +392,7 @@ eps = 2.22044604925031e-16 | |||
392 | 392 | ||
393 | -- | 1 + 0.5*peps == 1, 1 + 0.6*peps /= 1 | 393 | -- | 1 + 0.5*peps == 1, 1 + 0.6*peps /= 1 |
394 | peps :: RealFloat x => x | 394 | peps :: RealFloat x => x |
395 | peps = x where x = 2.0**(fromIntegral $ 1-floatDigits x) | 395 | peps = x where x = 2.0 ** fromIntegral (1 - floatDigits x) |
396 | 396 | ||
397 | 397 | ||
398 | -- | The imaginary unit: @i = 0.0 :+ 1.0@ | 398 | -- | The imaginary unit: @i = 0.0 :+ 1.0@ |
@@ -553,8 +553,7 @@ epslist = [ (fromIntegral k, golubeps k k) | k <- [1..]] | |||
553 | geps delta = head [ k | (k,g) <- epslist, g<delta] | 553 | geps delta = head [ k | (k,g) <- epslist, g<delta] |
554 | 554 | ||
555 | expGolub m = iterate msq f !! j | 555 | expGolub m = iterate msq f !! j |
556 | where j = max 0 $ floor $ log2 $ pnorm Infinity m | 556 | where j = max 0 $ floor $ logBase 2 $ pnorm Infinity m |
557 | log2 x = log x / log 2 | ||
558 | a = m */ fromIntegral ((2::Int)^j) | 557 | a = m */ fromIntegral ((2::Int)^j) |
559 | q = geps eps -- 7 steps | 558 | q = geps eps -- 7 steps |
560 | eye = ident (rows m) | 559 | eye = ident (rows m) |