{-# OPTIONS_GHC -funbox-strict-fields #-}

-- | Internal module used to share implementation details between the
-- family of ekg packages. DO NOT DEPEND ON THIS MODULE.
module System.Metrics.Distribution.Internal
    ( Stats(..)
    ) where

import Data.Int (Int64)

-- | Distribution statistics
data Stats = Stats
    { Stats -> Double
mean     :: !Double  -- ^ Sample mean
    , Stats -> Double
variance :: !Double  -- ^ Biased sample variance
    , Stats -> Int64
count    :: !Int64   -- ^ Event count
    , Stats -> Double
sum      :: !Double  -- ^ Sum of values
    , Stats -> Double
min      :: !Double  -- ^ Min value seen
    , Stats -> Double
max      :: !Double  -- ^ Max value seen
    } deriving (Stats -> Stats -> Bool
(Stats -> Stats -> Bool) -> (Stats -> Stats -> Bool) -> Eq Stats
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Stats -> Stats -> Bool
== :: Stats -> Stats -> Bool
$c/= :: Stats -> Stats -> Bool
/= :: Stats -> Stats -> Bool
Eq, Int -> Stats -> ShowS
[Stats] -> ShowS
Stats -> String
(Int -> Stats -> ShowS)
-> (Stats -> String) -> ([Stats] -> ShowS) -> Show Stats
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Stats -> ShowS
showsPrec :: Int -> Stats -> ShowS
$cshow :: Stats -> String
show :: Stats -> String
$cshowList :: [Stats] -> ShowS
showList :: [Stats] -> ShowS
Show)