h*G >      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                              0.14.0.0  Safe-Inferred"perfA set of factors consisting of the dominant order, the dominant order factor and a constant factor perfa set of factors for each order, which represents a full Order specification. perf order type perfcubicperf quadraticperf^3/2perf N * log Nperflinearperfsqrt Nperflog Nperfconstantperfenumeration of O typesolist [N3,N2,N32,NLogN,N1,N12,LogN,N0]perf(functions to compute performance measurefmap ($ 0) promote_![0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]fmap ($ 1) promote_![1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0] Ordering makes sense around N=10fmap ($ 10) promote_[1000.0,100.0,31.622776601683793,23.02585092994046,10.0,3.1622776601683795,2.302585092994046,1.0]$Having NP may cause big num problemsfmap ($ 1000) promote_[1.0e9,1000000.0,31622.776601683792,6907.755278982137,1000.0,31.622776601683793,6.907755278982137,1.0]perfcreate an Order order N2 1#Order {factors = [0,1,0,0,0,0,0,0]}perf*Calculate the expected performance measurepromote (order N2 1) 10100.0perf0Calculate the expected performance measure per npromote (order N2 1) 10100.0perfCalculate an Order from a given O, an n, and a total performance measurement7A measurement of 1e6 for n=1000 with an order of N2 is:demote N2 1000 10000003Order {factors = [0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0]}  promote (demote N2 n m) n m == mperf+Calculate an Order from a measure, and an Odemote1 N2 10006Order {factors = [0.0,1000.0,0.0,0.0,0.0,0.0,0.0,0.0]} demote1 N2 m == demote o 1 mperf(find the dominant order, and it's factorbigO o(N2,1.0)perfcompute the runtime component of an Order, defined as the difference between the dominant order and the total for a single run. runtime o100.0perfcompute the BigOrder fromOrder o)BigOrder {bigOrder = N2, bigFactor = 1.0}perfconvert a BigOrder to an Order.,toOrder . fromOrder is not a round trip iso.toOrder (fromOrder o)3Order {factors = [0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0]} perf4The factor for each O given an n, and a measurement.spectrum 100 10000Order {factors = [1.0e-2,1.0,10.0,21.71472409516259,100.0,1000.0,2171.4724095162587,10000.0]}!perfThe errors for a list of n's and measurements, based on the spectrum of the last measurement."perf.minimum error order for a list of measurements bestO ns msN1#perffit the best order for the last measurement and return it, and the error terms for the measurements estO ns ms(Order {factors = [0.0,0.0,0.0,0.0,102.90746947660953,0.0,0.0,0.0]},[2702.0925305233905,2446.9253052339045,-301.7469476609531,-10317.469476609534,0.0])$perffit orders from the last measurement to the first, using the residuals at each step. estOs ns ms[Order {factors = [0.0,0.0,0.0,0.0,102.90746947660953,0.0,0.0,0.0]},Order {factors = [0.0,0.0,-0.32626703235351473,0.0,0.0,0.0,0.0,0.0]},Order {factors = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.520084692561625]},Order {factors = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,2432.722690017952]},Order {factors = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,245.1760228452299]}](  !"#$%&'(  !"#$%&' Safe-Inferred" <perf+Command-line options for type of statistic.@perfCompute the medianAperfCompute the averageBperfCompute the tenth percentileCperf"Compute the average of an IntegralDperfCompute a statistic.EperfCompute a list of statistics.FperfParse command-line < options.GperfAdd a statistic to a State MapHperf#Linguistic conversion of an ordinalIperfCompute all stats.Jperf3Convert a Map of performance result to a statistic.A@BC<=>?DEFGHIJA@BC<=>?DEFGHIJ Safe-Inferred"PbperfParse charting options.M`_^]\[ZYXWVUTSRQPONabcdefgM`_^]\[ZYXWVUTSRQPONabcdefg Safe-Inferred">kperfThe transformer over Identitylperf.Performance measurement transformer storing a s and a map of named results.operfAbstraction of a performance measurement with a pre and a post step wrapping the computation.sperfAbstraction of a performance measurement within a monadic context.measure applies a function to a value, returning a tuple of the performance measure, and the computation result.measureM evaluates a monadic value and returns a performance-result tuple.vperf'Convert a Measure into a multi measure.wperf$Convert a StepMeasure into a MeasurexperfConvert a StepMeasure into a Measure running the computation multiple times.yperfA single step measurement.zperfA single step measurement.{perf,Return one result but multiple measurements.|perfMultiple measurements~perf:Lift an application to a PerfT m, providing a label and a s.2Measurements with the same label will be mappendedperf7Lift an application to a PerfT m, forcing the argument.perf>Lift an application to a PerfT m, forcing argument and result.perfLift a number to a PerfT m, providing a label, function, and input..Measurements with the same label will be addedperf;Lift a monadic value to a PerfT m, providing a label and a s..Measurements with the same label will be addedperf2lift a pure, unnamed function application to PerfTperf5lift a monadic, unnamed function application to PerfTperf(lift an unnamed numeric measure to PerfTperfRun the performance measure, returning (computational result, measurement).perfConsume the PerfT layer and return the original monadic result. Fingers crossed, PerfT structure should be completely compiled away.perf1Consume a PerfT layer and return the measurement.perfrun a PerfT and also calculate performance over the entire computationperfrun a PerfT and calculate excess performance over the entire computationperfrun a multi PerfT and calculate excess performance over the entire computationperftick_ measures the number of nanos it takes to read the clock.perfWarm up the clock, to avoid a high first measurement. Without a warmup, one or more larger values can occur at the start of a measurement spree, and often are in the zone of an L2 miss.perftick from a specific perftick f a"strictly evaluates f and a to WHNFreads the clockstrictly evaluates f a to WHNFreads the clockreturns (nanos, f a)perf tickWHNF f areads the clockstrictly evaluates f a to WHNF (this may also kick off thunk evaluation in f or a which will also be captured in the cycle count)reads the clockreturns (nanos, f a)perf tickLazy f areads the clocklazily evaluates f areads the clockreturns (nanos, f a)perf tickForce f adeeply evaluates f and a,reads the clockdeeply evaluates f areads the clockreturns (nanos, f a)perftickForceArgs f adeeply evaluates f and a,reads the clockstrictly evaluates f a to WHNFreads the clockreturns (nanos, f a)perf measures an IO aperf measures an IO aperfn measurements of a tick2returns a list of Nanos and the last evaluated f aperfn measurements of a tickIO=returns an IO tuple; list of Nanos and the last evaluated f aperf tick as a operf tick as a sperftick as a multi-MeasureperftickWith as a multi-Measureperf$tickWith for n repeated applicationsperf$tickWith for n repeated applications Safe-Inferred")perfNumber of bytesperfGHC allocation statistics.perfConvert  to a list of numbers.perf Labels for .perf A allocation o with a flag to determine if % should run prior to the measurement.perf.Measure memory allocation, with a flag to run  prior to the measurement. Safe-Inferred*Mperf#Register 1 as a performance measureperf#Count the number of times measured. Safe-Inferred"+perf!Command-line measurement options.perfParse command-line  options.perfunification of the different measurements to being a list of doubles.perf!unification of measurement labelsperf-How to fold the list of performance measures.    Safe-Inferred"3w8perf+Unification of length function applicationsperf(Unification of sum function applicationsperf,Unification of example function applicationsperfAlgorithm examples for testingperf2Parse command-line options for algorithm examples.perfLabelsperf Convert an  to an .perf Convert an  to a l.perf Convert an  to a tasty-bench run.perfAll the sum algorithms.perf Convert an  to a l.perf Run a sum algorithm measurement.perftail resursiveperflazy recursion.perfWith argument order flippedperf!Lazy with argument order flipped.perfCo-routine styleperfCo-routine, go styleperfCo-routine, case-styleperfAuxillary style.perf foldr styleperf cata styleperfsumperfMonomorphic sumperfPolymorphic sumperfLambda-style sumperfGHC-style foldr method.perf Fusion checkperfFusion under polymorphperf foldl' fusionperf foldr fusionperfAll the length algorithms.perf Convert an  to a l.perfRun a lengths algorithmperftail resursiveperflazy recursion.perfWith argument order flippedperf!Lazy with argument order flipped.perfCo-routine styleperf%Co-routine style as a Case statement.perfAuxillary version.perf foldr styleperf&foldr style with explicit const usage.perf GHC styleperfMonomorphic, GHC styleperfTail recursionperfLazy tail recursionperf+Tail resursion with flipped argument order.perf0Lazy tail resursion with flipped argument order.perf CoroutineperfLazy, coroutineperf Cata styleperfTest of const fusionperfIncrement a list.perf Split a list.perf Fibonnacci  Safe-Inferred";perf"Whether to overwrite a golden fileperf&Whether to check against a golden fileperfGolden file options.perf$Comparison data between two results.perfLevels of geometric difference in compared performance that triggers reporting.perf/Options for production of a performance report.perf#Number of times to run a benchmark.perf&Whether to include header information.perfBenchmark nameperfCommand-line parser for perfDefault reporting optionsperfCommand-line parser for perfParse command-line  options.perfParse charting options.perfRun and report a benchmark with the specified reporting options.perfdefaultCompareLevelsCompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}perfCommand-line parser for perfWrite results to fileperfRead results from a file.perfCompare two results and produce some notes given level triggers.perf!Console-style header information.perfFormat a comparison.perf!Format a result as lines of text.perfFormat a result as a table.perf?Default is Golden "other/bench.perf" CheckGolden NoRecordGoldenperf6Replace the golden file name stem if it's the default.perfReplace the Golden file path with the suggested stem, but only if the user did not specify a specific file path at the command line.perf'Parse command-line golden file options.perfReport resultsIf a goldenFile is checked, and performance has degraded, the function will exit with  so that 'cabal bench' and other types of processes can signal performance issues.99  Safe-Inferred<kstuopqrlmnyvwxz{|}~  ! "#$%&'<=>?A@BCDEFGHIJ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWXYZ[\]^_`abcdefghijklmnopqrs ttuvvwxyyz{|}~                                                                                                                                                                     $perf-0.14.0.0-HdEqUphBmOFCQUbECqtHT4 Perf.BigO Perf.Stats Perf.Chart Perf.Types Perf.Time Perf.Space Perf.Count Perf.Measure Perf.Algos Perf.ReportperfPerf OrderOptionsdoOrderorderLow orderDivisorBigOrderbigOrder bigFactorOrderfactorsON3N2N32NLogNN1N12LogNN0olistpromote_orderpromotepromote1demotedemote1bigOruntime fromOrdertoOrderspectrumdiffsbestOestOestOsmakeNsdefaultOrderOptionsparseOrderOptions $fNumOrder$fPrettyBigOrder$fEqOrderOptions$fShowOrderOptions$fGenericOrderOptions $fEqBigOrder $fOrdBigOrder$fShowBigOrder$fGenericBigOrder$fFunctorBigOrder $fEqOrder $fOrdOrder $fShowOrder$fGenericOrder$fFunctorOrder$fEqO$fOrdO$fShowO $fGenericO$fEnumO StatDType StatAverage StatMedianStatBestmedianaveragetenthaverageIstatDstatDs parseStatDaddStatordyallStatsstatify $fEqStatDType$fShowStatDTypePerfChartOptionsdoChart chartFilepath truncateAt doSmallChart doBigChart doHistChartdoAveragesLegend averagesStyleaveragesPaletteStartaveragesLegend smallStylesmallHudbigStylebigHud titleSize histGrainbigWidth excludeZerosdefaultPerfChartOptionsparsePerfChartOptions perfCharts perfChart dotHistChart compareCharts dotHistCharts$fEqPerfChartOptions$fShowPerfChartOptions$fGenericPerfChartOptionsPerfT measurePerf StepMeasureprepostMeasuremeasurerepeated toMeasure toMeasureNstepstepMmultimultiMmultiNfapafapffapfanfam|$|$||+|runPerfT evalPerfT execPerfTouterslopslops$fApplicativeMeasure$fFunctorMeasure$fApplicativeStepMeasure$fFunctorStepMeasure$fMonadIOPerfT$fFunctorPerfT$fApplicativePerfT $fMonadPerfTNanostoSecs defaultClocknanos nanosWithtick_warmuptickWithticktickWHNFtickLazy tickForce tickForceArgstickIO tickIOWithticksticksIOstepTimetimetimes timesWithtimesN timesNWithBytesunbytes SpaceStats allocatedcopiedmaxmemminorgcsmajorgcsssToList spaceLabelsspace allocation$fNumSpaceStats$fMonoidSpaceStats$fSemigroupSpaceStats $fMonoidBytes$fSemigroupBytes $fShowBytes $fReadBytes $fEqBytes $fOrdBytes $fNumBytes $fRealBytes $fEnumBytes$fIntegralBytes$fReadSpaceStats$fShowSpaceStats$fEqSpaceStatscountcountN MeasureType MeasureTime MeasureNTime MeasureSpaceMeasureSpaceTimeMeasureAllocation MeasureCount parseMeasure measureDs measureLabelsmeasureFinalStat$fEqMeasureType$fShowMeasureType LengthPattern LengthPoly LengthMono SumPatternSumFuse SumFusePolySumPolySumMonoExamplePatternPatternSumFuse PatternSumPatternLengthFPatternConstFuse PatternMapInc PatternNoOp PatternNub PatternFibExampleExampleSumFuse ExampleSumExampleLengthFExampleConstFuse ExampleMapInc ExampleNoOp ExampleNub ExampleFib parseExample exampleLabelexamplePattern testExample tastyExampleallSumstestSumstatSumssumTail sumTailLazysumFlip sumFlipLazysumCosumCoGo sumCoCasesumAuxsumFoldrsumCatasumSumsumMonosumPoly sumLambdasumFsumFuse sumFusePoly sumFuseFoldl' sumFuseFoldr allLengths testLength statLengths lengthTaillengthTailLazy lengthFliplengthFlipLazylengthCo lengthCoCase lengthAux lengthFoldrlengthFoldrConstlengthF lengthFMono recurseTailrecurseTailLazy recurseFliprecurseFlipLazy recurseCo recurseCoLazy recurseCata constFusemapInc splitHalf $fEqExample $fShowExampleGoldengoldencheckrecord CompareResult oldResult newResult noteResult CompareLevels errorLevel warningLevel improvedLevelPerfDumpOptions dumpFilepathdoDump ReportOptionsreportN reportLength reportClockreportStatDTypereportMeasureType reportGolden reportHeader reportCompare reportChart reportDumpreportGC reportOrder reportTastyHeaderNoHeaderName parseHeaderdefaultReportOptionsparseReportOptions parseClockdefaultPerfDumpOptionsparsePerfDumpOptionsfromDump reportMaindefaultCompareLevelsparseCompareLevels writeResult readResult compareNotereport2DreportToConsole defaultGoldenreplaceDefaultFilePath parseGoldenreport$fEqReportOptions$fShowReportOptions$fGenericReportOptions$fGenericGolden $fEqGolden $fShowGolden$fEqRecordGolden$fShowRecordGolden$fGenericRecordGolden$fEqCheckGolden$fShowCheckGolden$fGenericCheckGolden$fShowCompareResult$fEqCompareResult$fEqCompareLevels$fShowCompareLevels$fEqPerfDumpOptions$fShowPerfDumpOptions$fGenericPerfDumpOptions $fEqHeader $fShowHeader$fGenericHeader"clock-0.8.4-DpwZZvX18mTBnhmsYbUoyD System.Clock MonotonicRaw ThreadCPUTimeClockbase System.Mem performGCfib RecordGolden CheckGolden formatHeader formatCompare formatTextreplaceGoldenDefaultGHC.IO.Exception ExitFailure