criterion-0.6.0.1: Robust, reliable performance measurement and analysis

Portability | GHC
Stability | experimental
Maintainer | bos@serpentine.com

Criterion.Analysis

Description

Analysis code for benchmarks.

Synopsis

- data Outliers = Outliers {
  - samplesSeen :: !Int64
  - lowSevere :: !Int64
  - lowMild :: !Int64
  - highMild :: !Int64
  - highSevere :: !Int64
  }
- data OutlierEffect
  - = Unaffected
  - | Slight
  - | Moderate
  - | Severe
- data OutlierVariance = OutlierVariance {
  - ovEffect :: OutlierEffect
  - ovDesc :: String
  - ovFraction :: Double
  }
- data SampleAnalysis = SampleAnalysis {
  - anMean :: Estimate
  - anStdDev :: Estimate
  - anOutlierVar :: OutlierVariance
  }
- analyseSample :: Double -> Sample -> Int -> IO SampleAnalysis
- scale :: Double -> SampleAnalysis -> SampleAnalysis
- analyseMean :: Sample -> Int -> Criterion Double
- countOutliers :: Outliers -> Int64
- classifyOutliers :: Sample -> Outliers
- noteOutliers :: Outliers -> Criterion ()
- outlierVariance :: Estimate -> Estimate -> Double -> OutlierVariance

# Documentation

data Outliers

Outliers from sample data, calculated using the boxplot technique.

Constructors

Outliers |

Fields

samplesSeen :: !Int64
lowSevere :: !Int64

  More than 3 times the interquartile range (IQR) below the first quartile.

lowMild :: !Int64

  Between 1.5 and 3 times the IQR below the first quartile.

highMild :: !Int64

  Between 1.5 and 3 times the IQR above the third quartile.

highSevere :: !Int64

  More than 3 times the IQR above the third quartile.

Instances

Eq Outliers |
Data Outliers |
Read Outliers |
Show Outliers |
Typeable Outliers |
Monoid Outliers |
NFData Outliers |

data OutlierEffect

A description of the extent to which outliers in the sample data affect the sample mean and standard deviation.

Constructors

Unaffected | Less than 1% effect.
Slight | Between 1% and 10%.
Moderate | Between 10% and 50%.
Severe | Above 50% (i.e. measurements are useless).

Instances

Eq OutlierEffect |
Data OutlierEffect |
Ord OutlierEffect |
Read OutlierEffect |
Show OutlierEffect |
Typeable OutlierEffect |
NFData OutlierEffect |

data OutlierVariance

Analysis of the extent to which outliers in a sample affect its standard deviation (and to some extent, its mean).

Constructors

OutlierVariance |

Fields

ovEffect :: OutlierEffect

  Qualitative description of effect.

ovDesc :: String

  Brief textual description of effect.

ovFraction :: Double

  Quantitative description of effect (a fraction between 0 and 1).

Instances

Eq OutlierVariance |
Data OutlierVariance |
Read OutlierVariance |
Show OutlierVariance |
Typeable OutlierVariance |
NFData OutlierVariance |

data SampleAnalysis

Result of a bootstrap analysis of a non-parametric sample.

Constructors

SampleAnalysis |

Fields

anMean :: Estimate
anStdDev :: Estimate
anOutlierVar :: OutlierVariance

Instances

Eq SampleAnalysis |
Data SampleAnalysis |
Show SampleAnalysis |
Typeable SampleAnalysis |
NFData SampleAnalysis |

analyseSample

Arguments

:: Double | Confidence interval (between 0 and 1).
-> Sample | Sample data.
-> Int | Number of resamples to perform when bootstrapping.
-> IO SampleAnalysis |

Perform a bootstrap analysis of a non-parametric sample.

scale

Arguments

:: Double | Value to multiply by.
-> SampleAnalysis |
-> SampleAnalysis |

Multiply the `Estimate`s in an analysis by the given value, using `scale`.

analyseMean

Arguments

:: Sample |
-> Int | Number of iterations used to compute the sample.
-> Criterion Double |

Display the mean of a `Sample`, and characterise the outliers present in the sample.

countOutliers :: Outliers -> Int64

Count the total number of outliers in a sample.

classifyOutliers :: Sample -> Outliers

Classify outliers in a data set, using the boxplot technique.

noteOutliers :: Outliers -> Criterion ()

Display a report of the `Outliers` present in a `Sample`.

outlierVariance

Arguments

:: Estimate | Bootstrap estimate of sample mean.
-> Estimate | Bootstrap estimate of sample standard deviation.
-> Double | Number of original iterations.
-> OutlierVariance |

Compute the extent to which outliers in the sample data affect the sample mean and standard deviation.