summaryrefslogtreecommitdiff
path: root/packages/base/src/Numeric/LinearAlgebra
diff options
context:
space:
mode:
Diffstat (limited to 'packages/base/src/Numeric/LinearAlgebra')
-rw-r--r--packages/base/src/Numeric/LinearAlgebra/Algorithms.hs5
-rw-r--r--packages/base/src/Numeric/LinearAlgebra/Static.hs5
-rw-r--r--packages/base/src/Numeric/LinearAlgebra/Util/CG.hs6
3 files changed, 7 insertions, 9 deletions
diff --git a/packages/base/src/Numeric/LinearAlgebra/Algorithms.hs b/packages/base/src/Numeric/LinearAlgebra/Algorithms.hs
index 02ac6a0..a113d48 100644
--- a/packages/base/src/Numeric/LinearAlgebra/Algorithms.hs
+++ b/packages/base/src/Numeric/LinearAlgebra/Algorithms.hs
@@ -935,10 +935,9 @@ relativeError' x y = dig (norm (x `sub` y) / norm x)
935 dig r = round $ -logBase 10 (realToFrac r :: Double) 935 dig r = round $ -logBase 10 (realToFrac r :: Double)
936 936
937 937
938relativeError :: (Normed c t, Num (c t)) => NormType -> c t -> c t -> Double 938relativeError :: Num a => (a -> Double) -> a -> a -> Double
939relativeError t a b = realToFrac r 939relativeError norm a b = r
940 where 940 where
941 norm = pnorm t
942 na = norm a 941 na = norm a
943 nb = norm b 942 nb = norm b
944 nab = norm (a-b) 943 nab = norm (a-b)
diff --git a/packages/base/src/Numeric/LinearAlgebra/Static.hs b/packages/base/src/Numeric/LinearAlgebra/Static.hs
index cc5eb4f..a26cc4c 100644
--- a/packages/base/src/Numeric/LinearAlgebra/Static.hs
+++ b/packages/base/src/Numeric/LinearAlgebra/Static.hs
@@ -13,7 +13,6 @@
13{-# LANGUAGE TypeOperators #-} 13{-# LANGUAGE TypeOperators #-}
14{-# LANGUAGE ViewPatterns #-} 14{-# LANGUAGE ViewPatterns #-}
15{-# LANGUAGE GADTs #-} 15{-# LANGUAGE GADTs #-}
16{-# LANGUAGE OverlappingInstances #-}
17{-# LANGUAGE TypeFamilies #-} 16{-# LANGUAGE TypeFamilies #-}
18 17
19 18
@@ -184,8 +183,8 @@ a ¦ b = tr (tr a —— tr b)
184type Sq n = L n n 183type Sq n = L n n
185--type CSq n = CL n n 184--type CSq n = CL n n
186 185
187type GL = (KnownNat n, KnownNat m) => L m n 186type GL = forall n m . (KnownNat n, KnownNat m) => L m n
188type GSq = KnownNat n => Sq n 187type GSq = forall n . KnownNat n => Sq n
189 188
190isKonst :: forall m n . (KnownNat m, KnownNat n) => L m n -> Maybe (ℝ,(Int,Int)) 189isKonst :: forall m n . (KnownNat m, KnownNat n) => L m n -> Maybe (ℝ,(Int,Int))
191isKonst s@(unwrap -> x) 190isKonst s@(unwrap -> x)
diff --git a/packages/base/src/Numeric/LinearAlgebra/Util/CG.hs b/packages/base/src/Numeric/LinearAlgebra/Util/CG.hs
index b82c74f..899a5bf 100644
--- a/packages/base/src/Numeric/LinearAlgebra/Util/CG.hs
+++ b/packages/base/src/Numeric/LinearAlgebra/Util/CG.hs
@@ -9,7 +9,7 @@ module Numeric.LinearAlgebra.Util.CG(
9import Data.Packed.Numeric 9import Data.Packed.Numeric
10import Numeric.Sparse 10import Numeric.Sparse
11import Numeric.Vector() 11import Numeric.Vector()
12import Numeric.LinearAlgebra.Algorithms(linearSolveLS, relativeError, NormType(..)) 12import Numeric.LinearAlgebra.Algorithms(linearSolveLS, relativeError, pnorm, NormType(..))
13import Control.Arrow((***)) 13import Control.Arrow((***))
14 14
15{- 15{-
@@ -142,13 +142,13 @@ instance Testable GMatrix
142 print s3; print d3 142 print s3; print d3
143 print s4; print d4 143 print s4; print d4
144 print s5; print d5 144 print s5; print d5
145 print $ relativeError Infinity s5 d5 145 print $ relativeError (pnorm Infinity) s5 d5
146 146
147 ok = s1==d1 147 ok = s1==d1
148 && s2==d2 148 && s2==d2
149 && s3==d3 149 && s3==d3
150 && s4==d4 150 && s4==d4
151 && relativeError Infinity s5 d5 < 1E-10 151 && relativeError (pnorm Infinity) s5 d5 < 1E-10
152 152
153 disp = putStr . dispf 2 153 disp = putStr . dispf 2
154 154