summaryrefslogtreecommitdiff
path: root/lib/Numeric
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Numeric')
-rw-r--r--lib/Numeric/ContainerBoot.hs4
-rw-r--r--lib/Numeric/LinearAlgebra/Algorithms.hs5
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/Numeric/ContainerBoot.hs b/lib/Numeric/ContainerBoot.hs
index a605545..f1ed7c5 100644
--- a/lib/Numeric/ContainerBoot.hs
+++ b/lib/Numeric/ContainerBoot.hs
@@ -59,12 +59,12 @@ import System.IO.Unsafe
59 59
60------------------------------------------------------------------- 60-------------------------------------------------------------------
61 61
62type family IndexOf c 62type family IndexOf (c :: * -> *)
63 63
64type instance IndexOf Vector = Int 64type instance IndexOf Vector = Int
65type instance IndexOf Matrix = (Int,Int) 65type instance IndexOf Matrix = (Int,Int)
66 66
67type family ArgOf c a 67type family ArgOf (c :: * -> *) a
68 68
69type instance ArgOf Vector a = a -> a 69type instance ArgOf Vector a = a -> a
70type instance ArgOf Matrix a = a -> a -> a 70type instance ArgOf Matrix a = a -> a -> a
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
568geps delta = head [ k | (k,g) <- epslist, g<delta] 568geps delta = head [ k | (k,g) <- epslist, g<delta]
569 569
570expGolub :: ( Fractional t, Element t, Field t
571 , Normed Matrix t
572 , RealFrac (RealOf t)
573 , Floating (RealOf t)
574 ) => Matrix t -> Matrix t
570expGolub m = iterate msq f !! j 575expGolub 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)