Copyright | (c) 2009-2014 Bryan O'Sullivan |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
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 {
- anRegress :: [Regression]
- anMean :: Estimate ConfInt Double
- anStdDev :: Estimate ConfInt Double
- anOutlierVar :: OutlierVariance
- analyseSample :: Int -> String -> Vector Measured -> ExceptT String Criterion Report
- scale :: Double -> SampleAnalysis -> SampleAnalysis
- analyseMean :: Sample -> Int -> Criterion Double
- countOutliers :: Outliers -> Int64
- classifyOutliers :: Sample -> Outliers
- noteOutliers :: Outliers -> Criterion ()
- outlierVariance :: Estimate ConfInt Double -> Estimate ConfInt Double -> Double -> OutlierVariance
- resolveAccessors :: [String] -> Either String [(String, Measured -> Maybe Double)]
- validateAccessors :: [String] -> String -> Either String [(String, Measured -> Maybe Double)]
- regress :: GenIO -> [String] -> String -> Vector Measured -> ExceptT String Criterion Regression
Documentation
Outliers from sample data, calculated using the boxplot technique.
Constructors
Outliers | |
Fields
|
Instances
FromJSON Outliers Source # | |
Defined in Criterion.Types | |
ToJSON Outliers Source # | |
Defined in Criterion.Types Methods toEncoding :: Outliers -> Encoding toJSONList :: [Outliers] -> Value toEncodingList :: [Outliers] -> Encoding | |
Data Outliers Source # | |
Defined in Criterion.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Outliers -> c Outliers gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Outliers toConstr :: Outliers -> Constr dataTypeOf :: Outliers -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Outliers) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Outliers) gmapT :: (forall b. Data b => b -> b) -> Outliers -> Outliers gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Outliers -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Outliers -> r gmapQ :: (forall d. Data d => d -> u) -> Outliers -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Outliers -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Outliers -> m Outliers gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Outliers -> m Outliers gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Outliers -> m Outliers | |
Monoid Outliers Source # | |
Semigroup Outliers Source # | |
Generic Outliers Source # | |
Read Outliers Source # | |
Defined in Criterion.Types | |
Show Outliers Source # | |
Binary Outliers Source # | |
NFData Outliers Source # | |
Defined in Criterion.Types | |
Eq Outliers Source # | |
type Rep Outliers Source # | |
Defined in Criterion.Types type Rep Outliers = D1 ('MetaData "Outliers" "Criterion.Types" "criterion-1.6.1.0-2h8jJxyb3zL8Vx5Ow7sziS" 'False) (C1 ('MetaCons "Outliers" 'PrefixI 'True) ((S1 ('MetaSel ('Just "samplesSeen") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "lowSevere") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64)) :*: (S1 ('MetaSel ('Just "lowMild") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: (S1 ('MetaSel ('Just "highMild") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "highSevere") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64))))) |
data OutlierEffect Source #
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
FromJSON OutlierEffect Source # | |
Defined in Criterion.Types | |
ToJSON OutlierEffect Source # | |
Defined in Criterion.Types Methods toJSON :: OutlierEffect -> Value toEncoding :: OutlierEffect -> Encoding toJSONList :: [OutlierEffect] -> Value toEncodingList :: [OutlierEffect] -> Encoding | |
Data OutlierEffect Source # | |
Defined in Criterion.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OutlierEffect -> c OutlierEffect gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OutlierEffect toConstr :: OutlierEffect -> Constr dataTypeOf :: OutlierEffect -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OutlierEffect) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OutlierEffect) gmapT :: (forall b. Data b => b -> b) -> OutlierEffect -> OutlierEffect gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OutlierEffect -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OutlierEffect -> r gmapQ :: (forall d. Data d => d -> u) -> OutlierEffect -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> OutlierEffect -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> OutlierEffect -> m OutlierEffect gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierEffect -> m OutlierEffect gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierEffect -> m OutlierEffect | |
Generic OutlierEffect Source # | |
Defined in Criterion.Types Associated Types type Rep OutlierEffect :: Type -> Type | |
Read OutlierEffect Source # | |
Defined in Criterion.Types Methods readsPrec :: Int -> ReadS OutlierEffect readList :: ReadS [OutlierEffect] readPrec :: ReadPrec OutlierEffect readListPrec :: ReadPrec [OutlierEffect] | |
Show OutlierEffect Source # | |
Defined in Criterion.Types Methods showsPrec :: Int -> OutlierEffect -> ShowS show :: OutlierEffect -> String showList :: [OutlierEffect] -> ShowS | |
Binary OutlierEffect Source # | |
Defined in Criterion.Types | |
NFData OutlierEffect Source # | |
Defined in Criterion.Types Methods rnf :: OutlierEffect -> () | |
Eq OutlierEffect Source # | |
Defined in Criterion.Types | |
Ord OutlierEffect Source # | |
Defined in Criterion.Types Methods compare :: OutlierEffect -> OutlierEffect -> Ordering (<) :: OutlierEffect -> OutlierEffect -> Bool (<=) :: OutlierEffect -> OutlierEffect -> Bool (>) :: OutlierEffect -> OutlierEffect -> Bool (>=) :: OutlierEffect -> OutlierEffect -> Bool max :: OutlierEffect -> OutlierEffect -> OutlierEffect min :: OutlierEffect -> OutlierEffect -> OutlierEffect | |
type Rep OutlierEffect Source # | |
Defined in Criterion.Types type Rep OutlierEffect = D1 ('MetaData "OutlierEffect" "Criterion.Types" "criterion-1.6.1.0-2h8jJxyb3zL8Vx5Ow7sziS" 'False) ((C1 ('MetaCons "Unaffected" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Slight" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Moderate" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Severe" 'PrefixI 'False) (U1 :: Type -> Type))) |
data OutlierVariance Source #
Analysis of the extent to which outliers in a sample affect its standard deviation (and to some extent, its mean).
Constructors
OutlierVariance | |
Fields
|
Instances
FromJSON OutlierVariance Source # | |
Defined in Criterion.Types Methods parseJSON :: Value -> Parser OutlierVariance parseJSONList :: Value -> Parser [OutlierVariance] | |
ToJSON OutlierVariance Source # | |
Defined in Criterion.Types Methods toJSON :: OutlierVariance -> Value toEncoding :: OutlierVariance -> Encoding toJSONList :: [OutlierVariance] -> Value toEncodingList :: [OutlierVariance] -> Encoding | |
Data OutlierVariance Source # | |
Defined in Criterion.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OutlierVariance -> c OutlierVariance gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OutlierVariance toConstr :: OutlierVariance -> Constr dataTypeOf :: OutlierVariance -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OutlierVariance) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OutlierVariance) gmapT :: (forall b. Data b => b -> b) -> OutlierVariance -> OutlierVariance gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OutlierVariance -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OutlierVariance -> r gmapQ :: (forall d. Data d => d -> u) -> OutlierVariance -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> OutlierVariance -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> OutlierVariance -> m OutlierVariance gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierVariance -> m OutlierVariance gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierVariance -> m OutlierVariance | |
Generic OutlierVariance Source # | |
Defined in Criterion.Types Associated Types type Rep OutlierVariance :: Type -> Type Methods from :: OutlierVariance -> Rep OutlierVariance x to :: Rep OutlierVariance x -> OutlierVariance | |
Read OutlierVariance Source # | |
Defined in Criterion.Types Methods readsPrec :: Int -> ReadS OutlierVariance readList :: ReadS [OutlierVariance] readPrec :: ReadPrec OutlierVariance readListPrec :: ReadPrec [OutlierVariance] | |
Show OutlierVariance Source # | |
Defined in Criterion.Types Methods showsPrec :: Int -> OutlierVariance -> ShowS show :: OutlierVariance -> String showList :: [OutlierVariance] -> ShowS | |
Binary OutlierVariance Source # | |
Defined in Criterion.Types | |
NFData OutlierVariance Source # | |
Defined in Criterion.Types Methods rnf :: OutlierVariance -> () | |
Eq OutlierVariance Source # | |
Defined in Criterion.Types Methods (==) :: OutlierVariance -> OutlierVariance -> Bool (/=) :: OutlierVariance -> OutlierVariance -> Bool | |
type Rep OutlierVariance Source # | |
Defined in Criterion.Types type Rep OutlierVariance = D1 ('MetaData "OutlierVariance" "Criterion.Types" "criterion-1.6.1.0-2h8jJxyb3zL8Vx5Ow7sziS" 'False) (C1 ('MetaCons "OutlierVariance" 'PrefixI 'True) (S1 ('MetaSel ('Just "ovEffect") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OutlierEffect) :*: (S1 ('MetaSel ('Just "ovDesc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "ovFraction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double)))) |
data SampleAnalysis Source #
Result of a bootstrap analysis of a non-parametric sample.
Constructors
SampleAnalysis | |
Fields
|
Instances
FromJSON SampleAnalysis Source # | |
Defined in Criterion.Types | |
ToJSON SampleAnalysis Source # | |
Defined in Criterion.Types Methods toJSON :: SampleAnalysis -> Value toEncoding :: SampleAnalysis -> Encoding toJSONList :: [SampleAnalysis] -> Value toEncodingList :: [SampleAnalysis] -> Encoding | |
Generic SampleAnalysis Source # | |
Defined in Criterion.Types Associated Types type Rep SampleAnalysis :: Type -> Type | |
Read SampleAnalysis Source # | |
Defined in Criterion.Types Methods readsPrec :: Int -> ReadS SampleAnalysis readList :: ReadS [SampleAnalysis] readPrec :: ReadPrec SampleAnalysis readListPrec :: ReadPrec [SampleAnalysis] | |
Show SampleAnalysis Source # | |
Defined in Criterion.Types Methods showsPrec :: Int -> SampleAnalysis -> ShowS show :: SampleAnalysis -> String showList :: [SampleAnalysis] -> ShowS | |
Binary SampleAnalysis Source # | |
Defined in Criterion.Types | |
NFData SampleAnalysis Source # | |
Defined in Criterion.Types Methods rnf :: SampleAnalysis -> () | |
Eq SampleAnalysis Source # | |
Defined in Criterion.Types Methods (==) :: SampleAnalysis -> SampleAnalysis -> Bool (/=) :: SampleAnalysis -> SampleAnalysis -> Bool | |
type Rep SampleAnalysis Source # | |
Defined in Criterion.Types type Rep SampleAnalysis = D1 ('MetaData "SampleAnalysis" "Criterion.Types" "criterion-1.6.1.0-2h8jJxyb3zL8Vx5Ow7sziS" 'False) (C1 ('MetaCons "SampleAnalysis" 'PrefixI 'True) ((S1 ('MetaSel ('Just "anRegress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Regression]) :*: S1 ('MetaSel ('Just "anMean") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Estimate ConfInt Double))) :*: (S1 ('MetaSel ('Just "anStdDev") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Estimate ConfInt Double)) :*: S1 ('MetaSel ('Just "anOutlierVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OutlierVariance)))) |
Arguments
:: Int | Experiment number. |
-> String | Experiment name. |
-> Vector Measured | Sample data. |
-> ExceptT String Criterion Report |
Perform an analysis of a measurement.
Arguments
:: Double | Value to multiply by. |
-> SampleAnalysis | |
-> SampleAnalysis |
Multiply the Estimate
s in an analysis by the given value, using
scale
.
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 Source #
Count the total number of outliers in a sample.
classifyOutliers :: Sample -> Outliers Source #
Classify outliers in a data set, using the boxplot technique.
noteOutliers :: Outliers -> Criterion () Source #
Display a report of the Outliers
present in a Sample
.
Arguments
:: Estimate ConfInt Double | Bootstrap estimate of sample mean. |
-> Estimate ConfInt Double | 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.
resolveAccessors :: [String] -> Either String [(String, Measured -> Maybe Double)] Source #
Given a list of accessor names (see measureKeys
), return either
a mapping from accessor name to function or an error message if
any names are wrong.
Arguments
:: [String] | Predictor names. |
-> String | Responder name. |
-> Either String [(String, Measured -> Maybe Double)] |
Given predictor and responder names, do some basic validation, then hand back the relevant accessors.
Arguments
:: GenIO | |
-> [String] | Predictor names. |
-> String | Responder name. |
-> Vector Measured | |
-> ExceptT String Criterion Regression |
Regress the given predictors against the responder.
Errors may be returned under various circumstances, such as invalid names or lack of needed data.
See olsRegress
for details of the regression performed.