From 86b9e7cf3b9c29e8351b313860054caa485dc987 Mon Sep 17 00:00:00 2001 From: Justin Le Date: Mon, 11 Jan 2016 03:33:10 -0800 Subject: Disp instance for Sym and Her --- packages/base/src/Numeric/LinearAlgebra/Static.hs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'packages/base/src/Numeric') diff --git a/packages/base/src/Numeric/LinearAlgebra/Static.hs b/packages/base/src/Numeric/LinearAlgebra/Static.hs index 720b011..6d828d7 100644 --- a/packages/base/src/Numeric/LinearAlgebra/Static.hs +++ b/packages/base/src/Numeric/LinearAlgebra/Static.hs @@ -77,6 +77,7 @@ import qualified Numeric.LinearAlgebra.Devel as LA import Data.Proxy(Proxy(..)) import Internal.Static import Control.Arrow((***)) +import Text.Printf ud1 :: R n -> Vector ℝ ud1 (R (Dim v)) = v @@ -296,6 +297,20 @@ her :: KnownNat n => M n n -> Her n her m = Her $ (m + LA.tr m)/2 +instance (KnownNat n) => Disp (Sym n) + where + disp n (Sym x) = do + let a = extract x + let su = LA.dispf n a + printf "Sym %d" (cols a) >> putStr (dropWhile (/='\n') $ su) + +instance (KnownNat n) => Disp (Her n) + where + disp n (Her x) = do + let a = extract x + let su = LA.dispcf n a + printf "Her %d" (cols a) >> putStr (dropWhile (/='\n') $ su) + instance KnownNat n => Eigen (Sym n) (R n) (L n n) where -- cgit v1.2.3