From 4957cff8af91cbb23c12382e25f5373fe96acb95 Mon Sep 17 00:00:00 2001 From: Vivian McPhail Date: Tue, 29 Jun 2010 09:03:19 +0000 Subject: add-vector-float --- lib/Numeric/LinearAlgebra/Instances.hs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/Numeric/LinearAlgebra/Instances.hs') diff --git a/lib/Numeric/LinearAlgebra/Instances.hs b/lib/Numeric/LinearAlgebra/Instances.hs index 1992db0..bba89c8 100644 --- a/lib/Numeric/LinearAlgebra/Instances.hs +++ b/lib/Numeric/LinearAlgebra/Instances.hs @@ -94,6 +94,14 @@ instance Linear Vector a => Eq (Vector a) where #endif +instance Num (Vector Float) where + (+) = adaptScalar addConstant add (flip addConstant) + negate = scale (-1) + (*) = adaptScalar scale mul (flip scale) + signum = vectorMapF Sign + abs = vectorMapF Abs + fromInteger = fromList . return . fromInteger + instance Num (Vector Double) where (+) = adaptScalar addConstant add (flip addConstant) negate = scale (-1) @@ -138,6 +146,27 @@ instance (Linear Vector a, Fractional (Vector a), Num (Matrix a)) => Fractional --------------------------------------------------------- +instance Floating (Vector Float) where + sin = vectorMapF Sin + cos = vectorMapF Cos + tan = vectorMapF Tan + asin = vectorMapF ASin + acos = vectorMapF ACos + atan = vectorMapF ATan + sinh = vectorMapF Sinh + cosh = vectorMapF Cosh + tanh = vectorMapF Tanh + asinh = vectorMapF ASinh + acosh = vectorMapF ACosh + atanh = vectorMapF ATanh + exp = vectorMapF Exp + log = vectorMapF Log + sqrt = vectorMapF Sqrt + (**) = adaptScalar (vectorMapValF PowSV) (vectorZipF Pow) (flip (vectorMapValF PowVS)) + pi = fromList [pi] + +------------------------------------------------------------- + instance Floating (Vector Double) where sin = vectorMapR Sin cos = vectorMapR Cos -- cgit v1.2.3