{-# LANGUAGE FlexibleContexts #-} -- | -- Module : Statistics.Sample.Internal -- Copyright : (c) 2013 Bryan O'Sullivan -- License : BSD3 -- -- Maintainer : bos@serpentine.com -- Stability : experimental -- Portability : portable -- -- Internal functions for computing over samples. module Statistics.Sample.Internal ( robustSumVar , sum ) where import Numeric.Sum (kbn, sumVector) import Prelude hiding (sum) import Statistics.Function (square) import qualified Data.Vector.Generic as G robustSumVar :: (G.Vector v Double) => Double -> v Double -> Double robustSumVar m = sum . G.map (square . subtract m) {-# INLINE robustSumVar #-} sum :: (G.Vector v Double) => v Double -> Double sum = sumVector kbn {-# INLINE sum #-}