Copyright | Copyright (c) 2009-2016 David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
Tested with: GHC 8.0.1
Represents statistics.
- data SamplingStats a = SamplingStats {
- samplingStatsCount :: !Int
- samplingStatsMin :: !a
- samplingStatsMax :: !a
- samplingStatsMean :: !Double
- samplingStatsMean2 :: !Double
- class Num a => SamplingData a where
- combineSamplingStatsEither :: SamplingData a => Either a (SamplingStats a) -> SamplingStats a -> SamplingStats a
- samplingStatsVariance :: SamplingStats a -> Double
- samplingStatsDeviation :: SamplingStats a -> Double
- samplingStatsSummary :: Show a => SamplingStats a -> Int -> ShowS
- returnSamplingStats :: SamplingData a => a -> SamplingStats a
- listSamplingStats :: SamplingData a => [a] -> SamplingStats a
- fromIntSamplingStats :: SamplingStats Int -> SamplingStats Double
- data TimingStats a = TimingStats {
- timingStatsCount :: !Int
- timingStatsMin :: !a
- timingStatsMax :: !a
- timingStatsLast :: !a
- timingStatsMinTime :: !Double
- timingStatsMaxTime :: !Double
- timingStatsStartTime :: !Double
- timingStatsLastTime :: !Double
- timingStatsSum :: !Double
- timingStatsSum2 :: !Double
- class Num a => TimingData a where
- timingStatsDeviation :: TimingData a => TimingStats a -> Double
- timingStatsSummary :: (Show a, TimingData a) => TimingStats a -> Int -> ShowS
- returnTimingStats :: TimingData a => Double -> a -> TimingStats a
- fromIntTimingStats :: TimingStats Int -> TimingStats Double
- normTimingStats :: TimingData a => Int -> TimingStats a -> SamplingStats a
- data SamplingCounter a = SamplingCounter {}
- emptySamplingCounter :: SamplingData a => SamplingCounter a
- incSamplingCounter :: SamplingData a => a -> SamplingCounter a -> SamplingCounter a
- decSamplingCounter :: SamplingData a => a -> SamplingCounter a -> SamplingCounter a
- setSamplingCounter :: SamplingData a => a -> SamplingCounter a -> SamplingCounter a
- returnSamplingCounter :: SamplingData a => a -> SamplingCounter a
- data TimingCounter a = TimingCounter {}
- emptyTimingCounter :: TimingData a => TimingCounter a
- incTimingCounter :: TimingData a => Double -> a -> TimingCounter a -> TimingCounter a
- decTimingCounter :: TimingData a => Double -> a -> TimingCounter a -> TimingCounter a
- setTimingCounter :: TimingData a => Double -> a -> TimingCounter a -> TimingCounter a
- returnTimingCounter :: TimingData a => Double -> a -> TimingCounter a
Simple Statistics
data SamplingStats a Source #
Describes when the statistics consists of only samples not bound to the simulation time.
SamplingStats | |
|
Eq a => Eq (SamplingStats a) Source # | |
Ord a => Ord (SamplingStats a) Source # | |
Show a => Show (SamplingStats a) Source # | |
SamplingData a => Monoid (SamplingStats a) Source # | |
ResultItemable (ResultValue (SamplingStats Double)) Source # | |
ResultItemable (ResultValue (SamplingStats Int)) Source # | |
ResultComputing m => ResultProvider (m (SamplingStats Int)) Source # | |
ResultComputing m => ResultProvider (m (SamplingStats Double)) Source # | |
class Num a => SamplingData a where Source #
Specifies data type from which values we can gather the statistics.
emptySamplingStats :: SamplingStats a Source #
An empty statistics that has no samples.
addSamplingStats :: a -> SamplingStats a -> SamplingStats a Source #
Add a new sample to the statistics.
combineSamplingStats :: SamplingStats a -> SamplingStats a -> SamplingStats a Source #
Combine two statistics.
combineSamplingStatsEither :: SamplingData a => Either a (SamplingStats a) -> SamplingStats a -> SamplingStats a Source #
If allows combining statistics more efficiently if we know that the first argument can be a scalar.
samplingStatsVariance :: SamplingStats a -> Double Source #
Return the variance.
samplingStatsDeviation :: SamplingStats a -> Double Source #
Return the deviation.
samplingStatsSummary :: Show a => SamplingStats a -> Int -> ShowS Source #
Show the summary of the statistics using the specified indent.
returnSamplingStats :: SamplingData a => a -> SamplingStats a Source #
Return the statistics by a single sample.
listSamplingStats :: SamplingData a => [a] -> SamplingStats a Source #
Create the statistics by the specified list of data.
fromIntSamplingStats :: SamplingStats Int -> SamplingStats Double Source #
Convert the statistics from integer to double values.
Timing Statistics
data TimingStats a Source #
This is the timing statistics where data are bound to the time.
TimingStats | |
|
Eq a => Eq (TimingStats a) Source # | |
Ord a => Ord (TimingStats a) Source # | |
(Show a, TimingData a) => Show (TimingStats a) Source # | |
ResultItemable (ResultValue (TimingStats Double)) Source # | |
ResultItemable (ResultValue (TimingStats Int)) Source # | |
ResultComputing m => ResultProvider (m (TimingStats Int)) Source # | |
ResultComputing m => ResultProvider (m (TimingStats Double)) Source # | |
class Num a => TimingData a where Source #
Defines the data type from which values we can gather the timing statistics.
emptyTimingStats :: TimingStats a Source #
An empty statistics that has no samples.
addTimingStats :: Double -> a -> TimingStats a -> TimingStats a Source #
Add a sample with the specified time to the statistics.
timingStatsMean :: TimingStats a -> Double Source #
Return the average value.
timingStatsMean2 :: TimingStats a -> Double Source #
Return the average square value.
timingStatsVariance :: TimingStats a -> Double Source #
Return the variance.
timingStatsDeviation :: TimingData a => TimingStats a -> Double Source #
Return the deviation.
timingStatsSummary :: (Show a, TimingData a) => TimingStats a -> Int -> ShowS Source #
Show the summary of the statistics using the specified indent.
returnTimingStats :: TimingData a => Double -> a -> TimingStats a Source #
Return the statistics by single timing data.
fromIntTimingStats :: TimingStats Int -> TimingStats Double Source #
Convert the statistics from integer to double values.
normTimingStats :: TimingData a => Int -> TimingStats a -> SamplingStats a Source #
Convert the statistics to its normalised sampling-based representation, where the first argument specifies the number of pseudo-samples.
Simple Counter
data SamplingCounter a Source #
A counter for which the statistics is collected too.
SamplingCounter | |
|
Eq a => Eq (SamplingCounter a) Source # | |
Ord a => Ord (SamplingCounter a) Source # | |
Show a => Show (SamplingCounter a) Source # | |
ResultComputing m => ResultProvider (m (SamplingCounter Int)) Source # | |
ResultComputing m => ResultProvider (m (SamplingCounter Double)) Source # | |
emptySamplingCounter :: SamplingData a => SamplingCounter a Source #
An empty counter.
incSamplingCounter :: SamplingData a => a -> SamplingCounter a -> SamplingCounter a Source #
Increase the counter.
decSamplingCounter :: SamplingData a => a -> SamplingCounter a -> SamplingCounter a Source #
Decrease the counter.
setSamplingCounter :: SamplingData a => a -> SamplingCounter a -> SamplingCounter a Source #
Set a new value for the counter.
returnSamplingCounter :: SamplingData a => a -> SamplingCounter a Source #
Create a counter with the specified initial value.
Timing Counter
data TimingCounter a Source #
A counter for which the timing statistics is collected too.
TimingCounter | |
|
Eq a => Eq (TimingCounter a) Source # | |
Ord a => Ord (TimingCounter a) Source # | |
(TimingData a, Show a) => Show (TimingCounter a) Source # | |
ResultComputing m => ResultProvider (m (TimingCounter Int)) Source # | |
ResultComputing m => ResultProvider (m (TimingCounter Double)) Source # | |
emptyTimingCounter :: TimingData a => TimingCounter a Source #
An empty counter.
incTimingCounter :: TimingData a => Double -> a -> TimingCounter a -> TimingCounter a Source #
Increase the counter at the specified time.
decTimingCounter :: TimingData a => Double -> a -> TimingCounter a -> TimingCounter a Source #
Decrease the counter at the specified time.
setTimingCounter :: TimingData a => Double -> a -> TimingCounter a -> TimingCounter a Source #
Set a new value for the counter at the specified time.
returnTimingCounter :: TimingData a => Double -> a -> TimingCounter a Source #
Create a timing counter with the specified initial value at the given time.