h&FC?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                             Safe-Inferred" perf+Command-line options for type of statistic.perfCompute the medianperfCompute the averageperfCompute the tenth percentileperf"Compute the average of an Integral perf$Compute the average time in seconds. perfCompute a statistic. perfCompute a list of statistics. perfParse command-line  options. perfAdd a statistic to a State Mapperf#Linguistic conversion of an ordinalperfCompute all stats.perf3Convert a Map of performance result to a statistic.    Safe-Inferred"perfThe transformer over Identityperf.Performance measurement transformer storing a  and a map of named results.perfAbstraction of a performance measurement with a pre and a post step wrapping the computation.perfAbstraction 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.perf'Convert a Measure into a multi measure. perf$Convert a StepMeasure into a Measure!perfConvert a StepMeasure into a Measure running the computation multiple times."perfA single step measurement.#perfA single step measurement.$perfMultiple measurement%perfMultiple measurements&perf:Lift an application to a PerfT m, providing a label and a .2Measurements with the same label will be mappended'perf7Lift 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 added*perf;Lift a monadic value to a PerfT m, providing a label and a ..Measurements with the same label will be added+perf2lift a pure, unnamed function application to PerfT,perf5lift a monadic, unnamed function application to PerfT-perf(lift an unnamed numeric measure to PerfT.perfRun 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.0perf1Consume a PerfT layer and return the measurement.1perfrun a PerfT and also calculate performance over the entire computation2perfrun a PerfT and calculate excess performance over the entire computation3perfrun a multi PerfT and calculate excess performance over the entire computation4perfreturns an IO tuple; list of Cycles and the last evaluated f aIperf tick as a Jperfa measure using * from System.CPUTime (unit is picoseconds)Kperfa measure using  (unit is seconds)Lperf tick as a Mperftick as a multi-Measure<=>?@ABCDEFGHIJKLM?@ABCDEFGH<=>JKLMI Safe-Inferred"}XperfNumber of bytes[perfGHC allocation statistics.bperfConvert [ to a list of numbers.cperf Labels for [.dperf A allocation  with a flag to determine if % should run prior to the measurement.eperf.Measure memory allocation, with a flag to run  prior to the measurement.XYZ[\]^_`abcde[\]^_`abcdeXYZ Safe-Inferredvperf#Register 1 as a performance measurewperf#Count the number of times measured.vwvw Safe-Inferred"|xperf!Command-line measurement options.~perfParse command-line x options.perfunification of the different measurements to being a list of doubles.perfunification of the different measurements to being a list of doubles.perf-How to fold the list of performance measures. xyz{|}~ xyz{|}~ Safe-Inferred"$perfGolden 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 optionsdefaultReportOptionsReportOptions {reportN = 1000, reportStatDType = StatAverage, reportMeasureType = MeasureTime, reportGolden = Golden {golden = "other/bench.perf", check = True, record = False}, reportHeader = Header, reportCompare = CompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}}perfCommand-line parser for perfDefault command-line parser.perf7Run and report a benchmark to the console. For example,*reportMain "foo" (fap "sum" sum [1..1000]) would:8run a benchmark for summing the numbers 1 to a thousand.look for saved performance data in other/foo-1000-MeasureTime-StatAverage.perfreport on performance in isolation or versus the canned data file if it exists.1exit with failure if the performace had degraded.perfRun and report a benchmark to the console with the supplied 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 filepath is "other/bench.perf"perf6Replace 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.++ Safe-Inferred"3perfA set of factors consisting of the dominant order, the dominant order factor and a constant factorperfa set of factors for each order, which represents a full Order specification.perf order typeperfcubicperf 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, bigConstant = 100.0}perfconvert a BigOrder to an Order.,toOrder . fromOrder is not a round trip iso.toOrder (fromOrder o)5Order {factors = [0.0,1.0,0.0,0.0,0.0,0.0,0.0,100.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 msN1perffit 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]}]perf performance curve for a Measure.perf+repetitive Double Meaure performance curve.perftime performance curve.perfBigOrder estimate estOrder (\x -> sum [1..x]) 100 [1,10,100,1000,10000] BigOrder {bigOrder = N1, bigFactor = 76.27652961460446, bigConstant = 0.0} estOrder (\x -> sum $ nub [1..x]) 100 [1,10,100,1000] BigOrder {bigOrder = N2, bigFactor = 13.485763594353541, bigConstant = 0.0}%%  Safe-Inferred"<.8perf+Unification of length function applicationsperf(Unification of sum function applicationsperf,Unification of example function applicationsperfAlgorithm examples for testingperfAll the example algorithms.perf2Parse command-line options for algorithm examples.perfLabelsperf Convert an  to an .perf Convert an  to a .perfrun an example measurement.perfAll the sum algorithms.perf Convert an  to a .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 .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.  Safe-Inferred=~  !"#$%&'()*+,-./0123<=>?@ABCDEFGHIJKLMXYZ[a`_^\]bcdevwx}|{yz~      !"##$%&'()*+,-./0123456789:;<=>?@ABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_``abcdefghijklmnopqrstuvwxyz{|}~                                                                            $perf-0.12.0.1-DwndM50BoxOBUtUp9NKWs5 Perf.Stats Perf.Types Perf.Time Perf.Space Perf.Count Perf.Measure Perf.Report Perf.BigO Perf.AlgosPerf StatDType StatAverage StatMedianStatBestStatSecsmedianaveragetenthaverageI averageSecsstatDstatDs parseStatDaddStatordyallStatsstatify $fEqStatDType$fShowStatDTypePerfT measurePerf StepMeasureprepostMeasuremeasuremeasureMrepeated toMeasure toMeasureNstepstepMmultimultiMfapafapffapfanfam|$|$||+|runPerfT evalPerfT execPerfTouterslopslops$fApplicativeMeasure$fFunctorMeasure$fApplicativeStepMeasure$fFunctorStepMeasure$fMonadIOPerfT$fFunctorPerfT$fApplicativePerfT $fMonadPerfTCycleswordtick_warmupticktickWHNFtickLazy tickForce tickForceArgstickIOticksticksIOstepTimecputime clocktimetimetimes$fMonoidCycles$fSemigroupCycles $fShowCycles $fReadCycles $fEqCycles $fOrdCycles $fNumCycles $fRealCycles $fEnumCycles$fIntegralCyclesBytesunbytes SpaceStatsallocatedBytes gcollects maxLiveBytes gcLiveBytesmaxMemssToList spaceLabelsspace allocation$fNumSpaceStats$fMonoidSpaceStats$fSemigroupSpaceStats $fMonoidBytes$fSemigroupBytes $fShowBytes $fReadBytes $fEqBytes $fOrdBytes $fNumBytes $fRealBytes $fEnumBytes$fIntegralBytes$fReadSpaceStats$fShowSpaceStats$fEqSpaceStatscountcountN MeasureType MeasureTime MeasureSpaceMeasureSpaceTimeMeasureAllocation MeasureCount parseMeasure measureDs measureLabelsmeasureFinalStat$fEqMeasureType$fShowMeasureTypeGoldengoldencheckrecord CompareResult oldResult newResult noteResult CompareLevels errorLevel warningLevel improvedLevel ReportOptionsreportNreportStatDTypereportMeasureType reportGolden reportHeader reportCompareHeaderNoHeaderName parseHeaderdefaultReportOptionsparseReportOptionsinfoReportOptions reportMainreportMainWithdefaultCompareLevelsparseCompareLevels writeResult readResult compareNote reportOrg2D defaultGoldenreplaceDefaultFilePath parseGoldenreport$fEqReportOptions$fShowReportOptions$fGenericReportOptions$fGenericGolden $fEqGolden $fShowGolden$fShowCompareResult$fEqCompareResult$fEqCompareLevels$fShowCompareLevels $fEqHeader $fShowHeader$fGenericHeaderBigOrderbigOrder bigFactor bigConstantOrderfactorsON3N2N32NLogNN1N12LogNN0olistpromote_orderpromotepromote1demotedemote1bigOruntime fromOrdertoOrderspectrumdiffsbestOestOestOsmcurvedcurvetcurveestOrder $fNumOrder $fEqBigOrder $fOrdBigOrder$fShowBigOrder$fGenericBigOrder$fFunctorBigOrder $fEqOrder $fOrdOrder $fShowOrder$fGenericOrder$fFunctorOrder$fEqO$fOrdO$fShowO $fGenericO$fEnumO LengthPattern LengthPoly LengthMono SumPatternSumFuse SumFusePolySumPolySumMonoExamplePatternPatternSumFuse PatternSumPatternLengthFPatternConstFuse PatternMapInc PatternNoOpExampleExampleSumFuse ExampleSumExampleLengthFExampleConstFuse ExampleMapInc ExampleNoOp allExamples parseExample exampleLabelexamplePattern testExample statExamplesallSumstestSumstatSumssumTail sumTailLazysumFlip sumFlipLazysumCosumCoGo sumCoCasesumAuxsumFoldrsumCatasumSumsumMonosumPoly sumLambdasumFsumFuse sumFusePoly sumFuseFoldl' sumFuseFoldr allLengths testLength statLengths lengthTaillengthTailLazy lengthFliplengthFlipLazylengthCo lengthCoCase lengthAux lengthFoldrlengthFoldrConstlengthF lengthFMono recurseTailrecurseTailLazy recurseFliprecurseFlipLazy recurseCo recurseCoLazy recurseCata constFusemapInc splitHalf $fEqExample $fShowExamplebaseSystem.CPUTime getCPUTime time-1.11.1.1Data.Time.Clock.POSIXgetCurrentTime System.Mem performGC formatHeader formatCompare formatTextreplaceGoldenDefaultGHC.IO.Exception ExitFailure