module HaskellWorks.Playground.Linear where import Numeric.LinearAlgebra import Prelude hiding ((<>)) variance :: Matrix Double -> Matrix Double variance :: Matrix Double -> Matrix Double variance Matrix Double m = Matrix Double x Matrix Double -> Matrix Double -> Matrix Double forall t. Numeric t => Matrix t -> Matrix t -> Matrix t <> ((Matrix Double m Matrix Double -> Matrix Double -> Matrix Double forall a. Num a => a -> a -> a - Vector Double -> Matrix Double forall a. Storable a => Vector a -> Matrix a asRow Vector Double rdMean) Matrix Double -> Matrix Double -> Matrix Double forall a. Floating a => a -> a -> a ** Matrix Double 2) where (Vector Double rdMean, Herm Double _) = Matrix Double -> (Vector Double, Herm Double) meanCov Matrix Double m r :: Int r = Matrix Double -> Int forall t. Matrix t -> Int rows Matrix Double m x :: Matrix Double x = Double -> (Int, Int) -> Matrix Double forall e d (c :: * -> *). Konst e d c => e -> d -> c e konst (Double 1 Double -> Double -> Double forall a. Fractional a => a -> a -> a / Int -> Double forall a b. (Integral a, Num b) => a -> b fromIntegral Int r) (Int 1, Int r)