h&C7;      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                             Safe-Inferred" perfGolden file options.perf$Comparison data between two results. perfReport configuration optionsperfLevels of geometric difference in compared performance that triggers reporting.perf&Whether to include header information.perfType of format for reportperfCommand-line parser for perfCommand-line parser for perfdefaultCompareLevelsCompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}perfCommand-line parser for perfdefaultReportConfigReportConfig {format = ConsoleMode, includeHeader = Header, levels = CompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}}perfParse   command line options. perfWrite results to file!perfRead results from file"perfCompare two results and produce some notes given level triggers.#perf-Like intercalate, but on the outside as well.$perfReport to a console, comparing the measurement versus a canned file.perfOrg-mode style header.perf!Console-style header information.perfFormat a comparison.perf!Format a result in org-mode styleperf Format a result in console-style%perfFormat a result as a table.&perf'Default filepath is "other/golden.perf"'perf%Make a filepath from supplied options(perf'Parse command-line golden file options.)perfReport resultsperfFormat a result given  and  preferences.*   !"#$%&'()*   ! "#$%&'() Safe-Inferred"e :perf+Command-line options for type of statistic.?perfCompute the median@perfCompute the averageAperfCompute the tenth percentileBperf"Compute the average of an IntegralCperf$Compute the average time in seconds.DperfCompute 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.:;<=>?@ABCDEFGHIJ@?ABC:;<=>DEFGHIJ Safe-Inferred"MperfThe transformer over IdentityNperf.Performance measurement transformer storing a U and a map of named results.QperfAbstraction of a performance measurement with a pre and a post step wrapping the computation.UperfAbstraction 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.Yperf'Convert a Measure into a multi measure.Zperf$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 U.2Measurements with the same label will be mappendedaperf7Lift an application to a PerfT m, forcing the argument.bperf>Lift an application to a PerfT m, forcing argument and result.cperfLift a number to a PerfT m, providing a label, function, and input..Measurements with the same label will be addeddperf;Lift a monadic value to a PerfT m, providing a label and a U..Measurements with the same label will be addedeperf2lift a pure, unnamed function application to PerfTfperf5lift a monadic, unnamed function application to PerfTgperf(lift an unnamed numeric measure to PerfThperfRun the performance measure, returning (computational result, measurement).iperfConsume the PerfT layer and return the original monadic result. Fingers crossed, PerfT structure should be completely compiled away.jperf1Consume a PerfT layer and return the measurement.kperfrun a PerfT and also calculate performance over the entire computationlperfrun a PerfT and calculate excess performance over the entire computationmperfrun a multi PerfT and calculate excess performance over the entire computationnperfreturns an IO tuple; list of Cycles and the last evaluated f aperf tick as a Qperfa measure using * from System.CPUTime (unit is picoseconds)perfa measure using  (unit is seconds)perf tick as a Uperftick as a multi-Measurevwxyz{|}~yz{|}~vwx Safe-Inferred" perfNumber of bytesperfGHC allocation statistics.perfConvert  to a list of numbers.perf Labels for .perf A allocation Q 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 perf#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.perfunification of the different measurements to being a list of doubles.perf-How to fold the list of performance measures.   Safe-Inferred"0perfA 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"9!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 N.perfrun an example measurement.perfAll the sum algorithms.perf Convert an  to a N.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 N.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:q   !"#$%&'():>=;?@ABCDEFGHIJKLMNOPQR SSTUUVWXXYZ[\]^_`abcdefghijklmnopqrstuvwxxyz{|}~                                                                            $perf-0.11.0.0-H7d6FdfcmyP1GelCBRBF0l Perf.Report Perf.Stats Perf.Types Perf.Time Perf.Space Perf.Count Perf.Measure Perf.BigO Perf.AlgosPerfGoldengoldencheckrecord CompareResult oldResult newResult noteResult ReportConfigformat includeHeaderlevels CompareLevels errorLevel warningLevel improvedLevelHeaderNoHeaderFormatOrgMode ConsoleMode parseFormat parseHeaderdefaultCompareLevelsparseCompareLevelsdefaultReportConfigparseReportConfig writeResult readResult compareNote outercalate reportGolden reportOrg2D defaultGoldengoldenFromOptions parseGoldenreport$fGenericGolden $fEqGolden $fShowGolden$fShowCompareResult$fEqCompareResult$fEqReportConfig$fShowReportConfig$fGenericReportConfig$fEqCompareLevels$fShowCompareLevels $fEqHeader $fShowHeader$fGenericHeader $fEqFormat $fShowFormat$fGenericFormat 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$fShowMeasureTypeBigOrderbigOrder 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 $fShowExampleformatOrgHeaderformatConsoleHeader formatCompare formatOrg formatConsoleformatInbaseSystem.CPUTime getCPUTime time-1.11.1.1Data.Time.Clock.POSIXgetCurrentTime System.Mem performGC