!FX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~             (c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Trustworthy "#&'27SX8-3 criterionReport of a sample analysis.5 criterion+A simple index indicating that this is the n th report.6 criterionThe name of this report.7 criterionSee .8 criterionRaw measurements.9 criterionReport analysis.: criterionAnalysis of outliers.; criterionData for a KDE of times.< criterion$Data for a KDE chart of performance.A criterion:Result of a bootstrap analysis of a non-parametric sample.C criterion+Estimates calculated via linear regression.D criterionEstimated mean.E criterionEstimated standard deviation.F criterionBDescription of the effects of outliers on the estimated variance.G criterionResults of a linear regression.I criterion Name of the responding variable.J criterion1Map from name to value of predictor coefficients.K criterionR goodness-of-fit estimate.L criterionsAnalysis of the extent to which outliers in a sample affect its standard deviation (and to some extent, its mean).N criterion"Qualitative description of effect.O criterion$Brief textual description of effect.P criterion@Quantitative description of effect (a fraction between 0 and 1).Q criterionpA description of the extent to which outliers in the sample data affect the sample mean and standard deviation.R criterionLess than 1% effect.S criterionBetween 1% and 10%.T criterionBetween 10% and 50%.U criterion+Above 50% (i.e. measurements are useless).V criterionCOutliers from sample data, calculated using the boxplot technique.Y criterionJMore than 3 times the interquartile range (IQR) below the first quartile.Z criterion9Between 1.5 and 3 times the IQR below the first quartile.[ criterion9Between 1.5 and 3 times the IQR above the third quartile.\ criterion3More than 3 times the IQR above the third quartile.] criterion%Top-level benchmarking configuration._ criterionLConfidence interval for bootstrap estimation (greater than 0, less than 1).` criterionrNumber of seconds to run a single benchmark. (In practice, execution time will very slightly exceed this limit.)a criterion2Number of resamples to perform when bootstrapping.b criterionRegressions to perform.c criterioniFile to write binary measurement and analysis data to. If not specified, this will be a temporary file.d criterion7File to write report output to, with template expanded.e criterionFile to write CSV summary to.f criterion(File to write JSON-formatted results to.g criterion.File to write JUnit-compatible XML results to.h criterion>Verbosity level to use when running and analysing benchmarks.i criterion)Template file to use if writing a report.j criterion,Control the amount of information displayed.n +*)('&%$#"! /-.,0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^aeh_`bcdfgijklmn]^aeh_`bcdfgijklm/-.,+*)('&%$#"!   VWXYZ[\QRSTULMNOPGHIJK<=>?@3456789:;ABCDEF012 (c) 2009 Neil Brown BSD-stylebos@serpentine.com experimentalGHCNone@AM>3 criterion0The monad in which most criterion code executes.(c) 2009 Neil Brown BSD-stylebos@serpentine.com experimentalGHC TrustworthyG} criterionRun a  action with the given ]. criterion<Return a random number generator, creating one if necessary.IThis is not currently thread-safe, but in a harmless way (we might call * more than once if multiple threads race).  criterionMemoise the result of an ! action.This is not currently thread-safe, but hopefully in a harmless way. We might call the given action more than once if multiple threads race, so our caller's job is to write actions that can be run multiple times safely.(c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Trustworthy=?SXM criterion0An internal class that acts like Printf/HPrintf.`The implementation is visible to the rest of the program, but the details of the class are not. criterionPrint a "normal" note. criterionPrint verbose output. criterionPrint an error message. criterionWrite a record to a CSV file.(c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Trustworthy"#2f0  criterion=Classify outliers in a data set, using the boxplot technique. criteriongCompute the extent to which outliers in the sample data affect the sample mean and standard deviation. criterion/Count the total number of outliers in a sample. criterionDisplay the mean of a "7, and characterise the outliers present in the sample. criterion Multiply the Estimate,s in an analysis by the given value, using #. criterion%Perform an analysis of a measurement. criterion3Regress the given predictors against the responder.bErrors may be returned under various circumstances, such as invalid names or lack of needed data.See $) for details of the regression performed. criterion$Given a list of accessor names (see g), return either a mapping from accessor name to function or an error message if any names are wrong. criterionfGiven predictor and responder names, do some basic validation, then hand back the relevant accessors. criterionDisplay a report of the V present in a ". criterion"Bootstrap estimate of sample mean. criterion3Bootstrap estimate of sample standard deviation. criterionNumber of original iterations. criterion1Number of iterations used to compute the sample. criterionValue to multiply by. criterionExperiment number. criterionExperiment name. criterion Sample data. criterionPredictor names. criterionResponder name. criterionPredictor names. criterionResponder name.!ABCDEFLMNOPQRSTUVWXYZ[\!VWXYZ[\QRSTULMNOPABCDEF Safegv%&'()*+,(c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Trustworthy"#27X  criterion A problem arose with a template. criterion The template could not be found. criterion%Trim long flat tails from a KDE plot. criterionMReturn the path to the template and other files used for generating reports. When the -fembed-data-files Cabal6 flag is enabled, this simply returns the empty path. criterionWrite out a series of 32 values to a single file, if configured to do so. criterionFormat a series of 3* values using the given Mustache template. criterion Render the elements of a vector.0It will substitute each value in the vector for x% in the following Mustache template: {{#foo}} {{x}} {{/foo}} criterion#Render the elements of two vectors. criterionKAttempt to include the contents of a file based on a search path. Returns  3 if the search fails or the file could not be read.BIntended for preprocessing Mustache files, e.g. replacing sections  {{#include}}file.txt{{/include} with file contents. criterionLoad a Mustache template file.AIf the name is an absolute or relative path, the search path is not1 used, and the name is treated as a literal path.If the -fembed-data-files Cabal1 flag is enabled, this also checks the embedded  data-files from criterion.cabal.This function throws a , if the template could not be found, or an - if no template could be loaded. criterionMustache template. criterionName to use when substituting. criterion(Name for elements from the first vector. criterion)Name for elements from the second vector. criterion First vector. criterionSecond vector. criterionDirectories to search. criterionName of the file to search for. criterion Search path. criterionName of template file. (c) 2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHCNone"#27 criterion'Execution mode for a benchmark program. criterionList all benchmarks. criterionPrint the version. criterionORun the given benchmarks, without collecting or analysing performance numbers. criterion%Run and analyse the given benchmarks. criterionHow to match a benchmark name. criterion+Match by prefix. For example, a prefix of "foo" will match "foobar". criterionMatch by Unix-style glob pattern. When using this match type, benchmark names are treated as if they were file-paths. For example, the glob patterns "*/ba*" and "*/*" will match  "foo/bar", but "*" or "*bar" will not. criterion7Match by searching given substring in benchmark paths. criterionSame as , but case insensitive. criterion#Default benchmarking configuration. criterionParse a command line. criterionParse a configuration. criterion Flesh out a command line parser. criterionpA string describing the version of this benchmark (really, the version of criterion that was used to build it). criterionFDefault configuration to use if options are not explicitly specified.(c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Trustworthy]  criterion2On disk we store (name,version,reports), where %7 is the version of Criterion used to generate the file. criterionThe header identifies a criterion data file. This contains version information; there is no expectation of cross-version compatibility. criterion3The magic string we expect to start off the header. criterionOThe current version of criterion, encoded into a string that is used in files. criterion Read all records from the given .. criterionWrite records to the given ..  criterion%Read all records from the given file.  criterion Write records to the given file.  criterionjAlternative file IO with JSON instances. Read a list of reports from a .json file produced by criterion.=If the version does not match exactly, this issues a warning.  criterionWrite a list of reports to a JSON file. Includes a header, which includes the current Criterion version number. This should be the inverse of  .         (c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHCNone"#   criterionRun a single benchmark./ criterionAnalyse a single benchmark. criterion3Run a single benchmark and analyse its performance. criterion)Run, and analyse, one or more benchmarks.0 criterion}Write out raw binary report files. This has some bugs, including and not limited to #68, and may be slated for deprecation. criterion2Run a benchmark without analysing its performance.1 criterionIterate over benchmarks.2 criterion'Write summary JSON file (if applicable)3 criterion(Write summary JUnit file (if applicable) criterionBA predicate that chooses whether to run a benchmark by its name. criterion!Number of loop iterations to run. criterionBA predicate that chooses whether to run a benchmark by its name.   (c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Trustworthyy criterion%An entry point that can be used as a main function. (import Criterion.Main fib :: Int -> Int fib 0 = 0 fib 1 = 1 fib n = fib (n-1) + fib (n-2) main = defaultMain [ bgroup "fib" [ bench "10" $ whnf fib 10 , bench "35" $ whnf fib 35 , bench "37" $ whnf fib 37 ] ] criterionYCreate a function that can tell if a name given on the command line matches a benchmark. criterion%An entry point that can be used as a main' function, with configurable defaults.Example: import Criterion.Main.Options import Criterion.Main myConfig = defaultConfig { -- Resample 10 times for bootstrapping resamples = 10 } main = defaultMainWith myConfig [ bench "fib 30" $ whnf fib 30 ]!If you save the above example as "Fib.hs"/, you should be able to compile it as follows: ghc -O --make FibRun  "Fib --help"< on the command line to get a list of command line options. criterion Run a set of /s with the given .!This can be useful if you have a Z from some other source (e.g. from a one in your benchmark driver's command-line parser).4 criterionHDisplay an error message from a command line parsing failure, and exit. criterionCommand line arguments. //   (c) 2009-2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHCNone"#Ѭ criterion;Run a benchmark interactively, and analyse its performance. criterionQRun a benchmark interactively, analyse its performance, and return the analysis. criterion;Run a benchmark interactively, and analyse its performance. criterionQRun a benchmark interactively, analyse its performance, and return the analysis. //  5 !"#$%&'()*+,-../0123456789::;<=<>?@AABCDEFGHIIJKLMMNOPQRRSTUVVWXYZ[\]^__`abcdeefghijklmnopqrstuvwxyz{|}~                    !"#$%&'()*+),)-. / 0 1 2 3 4 5 67897:;<=>?@ AB(criterion-1.5.3.0-6nFPh4L2GAjDA4lKBaA1AMCriterion.TypesCriterion.MonadCriterion.IO.PrintfCriterion.AnalysisCriterion.ReportCriterion.Main.Options Criterion.IOCriterion.InternalCriterion.Main CriterionCriterion.Monad.InternalPaths_criterionBempty3criterion-measurement-0.1.1.0-3YMu8Y36f0Dtd0DwRtAhvCriterion.Measurement.Typesmeasure benchNames addPrefixbgroupbenchperRunEnvWithCleanup perRunEnvperBatchEnvWithCleanup perBatchEnvenvWithCleanupenv whnfAppIOnfAppIOwhnfIOnfIOwhnfnftoDouble fromDoubletoIntfromIntrescalemeasureAccessors measureKeystoBenchmarkableperRun runRepeatedlycleanEnvallocEnv BenchmarkablemeasGcCpuSecondsmeasGcWallSecondsmeasMutatorCpuSecondsmeasMutatorWallSecondsmeasBytesCopied measNumGcs measAllocated measIters measCycles measCpuTimemeasTimeMeasured BenchGroup Benchmark Environment DataRecord MeasurementAnalysedReport reportNumber reportName reportKeysreportMeasuredreportAnalysisreportOutliers reportKDEsKDEkdeType kdeValueskdePDFSampleAnalysis anRegressanMeananStdDev anOutlierVar Regression regResponder regCoeffs regRSquareOutlierVarianceovEffectovDesc ovFraction OutlierEffect UnaffectedSlightModerateSevereOutliers samplesSeen lowSeverelowMildhighMild highSevereConfig confInterval timeLimit resamples regressions rawDataFile reportFilecsvFilejsonFile junitFile verbositytemplate VerbosityQuietNormalVerbose$fMonoidOutliers$fSemigroupOutliers$fNFDataOutliers$fBinaryOutliers$fToJSONOutliers$fFromJSONOutliers$fNFDataOutlierEffect$fBinaryOutlierEffect$fToJSONOutlierEffect$fFromJSONOutlierEffect$fNFDataOutlierVariance$fBinaryOutlierVariance$fToJSONOutlierVariance$fFromJSONOutlierVariance$fNFDataRegression$fBinaryRegression$fToJSONRegression$fFromJSONRegression$fNFDataSampleAnalysis$fBinarySampleAnalysis$fToJSONSampleAnalysis$fFromJSONSampleAnalysis $fNFDataKDE $fBinaryKDE $fToJSONKDE $fFromJSONKDE$fNFDataReport$fBinaryReport$fToJSONReport$fFromJSONReport$fToJSONDataRecord$fFromJSONDataRecord$fNFDataDataRecord$fBinaryDataRecord $fEqVerbosity$fOrdVerbosity$fBoundedVerbosity$fEnumVerbosity$fReadVerbosity$fShowVerbosity$fDataVerbosity$fGenericVerbosity $fEqConfig $fReadConfig $fShowConfig $fDataConfig$fGenericConfig $fEqOutliers$fReadOutliers$fShowOutliers$fDataOutliers$fGenericOutliers$fEqOutlierEffect$fOrdOutlierEffect$fReadOutlierEffect$fShowOutlierEffect$fDataOutlierEffect$fGenericOutlierEffect$fEqOutlierVariance$fReadOutlierVariance$fShowOutlierVariance$fDataOutlierVariance$fGenericOutlierVariance$fEqRegression$fReadRegression$fShowRegression$fGenericRegression$fEqSampleAnalysis$fReadSampleAnalysis$fShowSampleAnalysis$fGenericSampleAnalysis$fEqKDE $fReadKDE $fShowKDE $fDataKDE $fGenericKDE $fEqReport $fReadReport $fShowReport$fGenericReport$fEqDataRecord$fReadDataRecord$fShowDataRecord$fGenericDataRecord withConfiggetGenCritHPrintfTypenoteprolix printErrorwriteCsv$fCritHPrintfType->$fCritHPrintfTypeIO$fCritHPrintfTypeCriterionclassifyOutliersoutlierVariance countOutliers analyseMeanscale analyseSampleregressresolveAccessorsvalidateAccessors noteOutliersTemplateExceptionTemplateNotFound tidyTailsgetTemplateDirreport formatReportvectorvector2 includeFile loadTemplate$fExceptionTemplateException$fEqTemplateException$fReadTemplateException$fShowTemplateException$fDataTemplateException$fGenericTemplateExceptionModeListVersionRunItersRun MatchTypePrefixGlobPatternIPattern defaultConfig parseWithconfigdescribe versionInfo $fEqMatchType$fOrdMatchType$fBoundedMatchType$fEnumMatchType$fReadMatchType$fShowMatchType$fDataMatchType$fGenericMatchType$fEqMode $fReadMode $fShowMode $fDataMode $fGenericModeReportFileContentsheader headerRoot critVersion hGetRecords hPutRecords readRecords writeRecordsreadJSONReportswriteJSONReportsrunOnerunAndAnalyseOne runAndAnalyse runFixedIters defaultMain makeMatcherdefaultMainWithrunMode benchmark benchmark' benchmarkWithbenchmarkWith' runCriterionCritgen*mwc-random-0.14.0.0-2ptoW8ed7HNAMa3KrX0OSZSystem.Random.MWCcreateSystemRandommemoiseghc-prim GHC.TypesIO)statistics-0.15.0.0-OucnMKRz5h2zekYjM8XIbStatistics.Types.InternalSampleStatistics.TypesStatistics.Regression olsRegressversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.IO.Exception IOExceptionGHC.IO.Handle.TypesHandle analyseOne rawReportforjsonjunit parseError