@mark1russell7/rigor-bench 0.2.25 → 0.2.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -0
- package/build/index.d.ts +108 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +369 -187
- package/build/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -61,6 +61,8 @@ v.comparison; // the cases that gain and dro
|
|
|
61
61
|
| `budgetLookSpend(looks)` | The chance of error that a list of looks spends. |
|
|
62
62
|
| `timeRounds(arms, options)` | The timed rounds of one case in one process: a warm-up, a batch of at least the target time, and the order of `firstArm`. |
|
|
63
63
|
| `verdictPower(options)` | The share of each outcome over seeded benches with a known ratio: the power test of a rule. |
|
|
64
|
+
| `familyRead(items, level)` | The reads of a family of cases as a report: Holm over the cases, each job alone, and both. Each read changes only `slower` and `faster`. |
|
|
65
|
+
| `familyPower(options)` | The false-slower share of a family and the share of a slow case read, for each read, over seeded families. |
|
|
64
66
|
| `balanceOrders(records)` | The records of each case with a turned order. It removes the extra records of the larger order, with the highest rounds first. |
|
|
65
67
|
| `poolRecords(jobs)` | The pool of the jobs: the merged and balanced records, the records of each job, and the skipped cases. |
|
|
66
68
|
| `pooledVerdict(jobs, options)` | The verdict of the merged records of all jobs, with the verdict of each job alone as a guard. |
|
|
@@ -655,3 +657,50 @@ Since 0.2.0, the rule `difference` examines the margin before 1. An interval in
|
|
|
655
657
|
The rule `band` compares an interval with a band of the same noise, so it needs a change of approximately twice that noise. With the kind `case`, it also calls a real speedup `same`. Thus `difference` is the default. Its false rate is near the 5% of a two-sided interval of level 0.95. A change of 7% needs approximately 20 cases for a power of 0.7.
|
|
656
658
|
|
|
657
659
|
Since 0.2.0, `verdictPower` takes `same` as the true outcome of a ratio in the margin of the rule `difference`. The cells of the table stay, because the ratio 0.93 is out of the margin 0.05.
|
|
660
|
+
|
|
661
|
+
## A family of cases
|
|
662
|
+
|
|
663
|
+
A run reads many cases, and each case has its own interval. With no correction, the chance of one false `slower` case grows with the count of cases. At 16 cases and 0.025 for each side, this chance can be 1 - 0.975^16, approximately 0.33. With the option `pValues`, a time verdict of the rule `difference` gives `pSlower` and `pFaster` from the draws of its interval. Its outcome does not change, and the option is off by default. `familyRead` reads a family as a report:
|
|
664
|
+
|
|
665
|
+
- **Holm** (Holm, 1979) keeps a `slower` case only when the Holm correction over the cases rejects its side at `level` (default 0.025).
|
|
666
|
+
- **Each job** keeps a `slower` case of a pooled verdict only when each job gives `slower` alone.
|
|
667
|
+
- **Each job and Holm** keeps a case only when both reads keep it.
|
|
668
|
+
|
|
669
|
+
The smallest p of a bootstrap is 1 / (finite + 1). The first step of Holm is `level` over the count of cases. With too few runs, no case can pass that step, and `familyRead` prints a line that says so. At 16 cases, the first step is approximately 0.0016, so give the bootstrap more than 640 runs. The default is 10 000.
|
|
670
|
+
|
|
671
|
+
`familyPower` drew 100 seeded families for each row. Each family had 16 cases, with 12 rounds in each of 2 jobs. The log time of each arm had a normal noise of 0.01. The margin was log(1.015), and the bootstrap had 2000 runs. The first case had the ratio of the row, and the other cases had the ratio 1.
|
|
672
|
+
|
|
673
|
+
| Ratio of the first case | Read | Families with a false `slower` | First case read `slower` |
|
|
674
|
+
| --- | --- | --- | --- |
|
|
675
|
+
| 1 | no correction | 0.28 | 0.02 |
|
|
676
|
+
| 1 | Holm | 0.01 | 0 |
|
|
677
|
+
| 1 | each job | 0 | 0 |
|
|
678
|
+
| 1 | each job and Holm | 0 | 0 |
|
|
679
|
+
| 1.015 | no correction | 0.26 | 0.8 |
|
|
680
|
+
| 1.015 | Holm | 0.01 | 0.34 |
|
|
681
|
+
| 1.015 | each job | 0 | 0.28 |
|
|
682
|
+
| 1.015 | each job and Holm | 0 | 0.23 |
|
|
683
|
+
| 1.025 | no correction | 0.26 | 1 |
|
|
684
|
+
| 1.025 | Holm | 0.01 | 0.95 |
|
|
685
|
+
| 1.025 | each job | 0 | 0.87 |
|
|
686
|
+
| 1.025 | each job and Holm | 0 | 0.87 |
|
|
687
|
+
|
|
688
|
+
The smallest slowdown read in 80 % or more of the families is 1.5 % with no correction, and 2.5 % with each other read. At 2 %, the shares are 0.97, 0.77, 0.59 and 0.56.
|
|
689
|
+
|
|
690
|
+
This model has no shift between the jobs, so the read of each job has its best case. The option `jobShift` adds a shift to the candidate of each job. The rows below use the shift 0.0066 for each job, with the other settings of the table above.
|
|
691
|
+
|
|
692
|
+
| Ratio of the first case | Read | Families with a false `slower` | First case read `slower` |
|
|
693
|
+
| --- | --- | --- | --- |
|
|
694
|
+
| 1 | no correction | 0.48 | 0.04 |
|
|
695
|
+
| 1 | Holm | 0.1 | 0.01 |
|
|
696
|
+
| 1 | each job | 0.04 | 0 |
|
|
697
|
+
| 1 | each job and Holm | 0.02 | 0 |
|
|
698
|
+
| 1.025 | no correction | 0.46 | 0.98 |
|
|
699
|
+
| 1.025 | Holm | 0.09 | 0.93 |
|
|
700
|
+
| 1.025 | each job | 0.04 | 0.74 |
|
|
701
|
+
| 1.025 | each job and Holm | 0.02 | 0.74 |
|
|
702
|
+
| 1.03 | each job | 0.04 | 0.9 |
|
|
703
|
+
|
|
704
|
+
With this shift, the smallest slowdown read at 80 % is 2 % with no correction, 2.5 % with Holm, and 3 % with each job. A shift also adds false `slower` cases, because the candidate of a job is then not equal to its baseline.
|
|
705
|
+
|
|
706
|
+
A slowdown below the smallest slowdown at 80 % often reads `same` or `cannot decide`. Give this number beside the margin of a bench, because together they set what the bench can find.
|
package/build/index.d.ts
CHANGED
|
@@ -275,6 +275,11 @@ interface VerdictOptions extends BandOptions {
|
|
|
275
275
|
* The rule `difference` uses the larger of `margin` and the noise of the pooled band as its margin. The default is no pool.
|
|
276
276
|
*/
|
|
277
277
|
readonly pool?: PoolOptions;
|
|
278
|
+
/**
|
|
279
|
+
* This option adds `pSlower` and `pFaster` to a verdict of the rule `difference`. The default is off, so the output of a verdict
|
|
280
|
+
* stays the same. `familyRead` needs the two fields.
|
|
281
|
+
*/
|
|
282
|
+
readonly pValues?: boolean;
|
|
278
283
|
}
|
|
279
284
|
/** The noise cap of a verdict: the A/A spread of the run, the A/A median ratio of the run and the cap. */
|
|
280
285
|
interface NoiseCheck {
|
|
@@ -316,6 +321,14 @@ interface TimeVerdict {
|
|
|
316
321
|
readonly pool?: PoolFacts;
|
|
317
322
|
/** The noise cap. The verdict has this field only with the option `noiseCap`. */
|
|
318
323
|
readonly noise?: NoiseCheck;
|
|
324
|
+
/**
|
|
325
|
+
* The bootstrap p of the claim "the candidate is slower": the median difference is above 0. A family correction reads it.
|
|
326
|
+
* The value comes from the draws of `interval`, so it does not change the outcome. The verdict has this field only with the option
|
|
327
|
+
* `pValues`, the rule `difference` and a band.
|
|
328
|
+
*/
|
|
329
|
+
readonly pSlower?: number;
|
|
330
|
+
/** The bootstrap p of the claim "the candidate is faster". It has the same source as `pSlower`. */
|
|
331
|
+
readonly pFaster?: number;
|
|
319
332
|
}
|
|
320
333
|
/**
|
|
321
334
|
* This function gives the time verdict of the candidate arm `b` against the baseline arm `a`.
|
|
@@ -836,6 +849,100 @@ export declare function rungVerdict(rung: Rung, record: RungRecord | undefined,
|
|
|
836
849
|
* a `RangeError` for a ladder with problems, because a verdict on a bad ladder has no meaning. See `checkLadder`.
|
|
837
850
|
*/
|
|
838
851
|
export declare function ladderVerdict(ladder: Ladder, records: readonly RungRecord[], options: LadderOptions): LadderVerdict;
|
|
852
|
+
/** One case of a family: a time verdict, or the pooled verdict of the jobs. */
|
|
853
|
+
interface FamilyItem {
|
|
854
|
+
readonly case: string;
|
|
855
|
+
readonly verdict: TimeVerdict | PooledVerdict;
|
|
856
|
+
}
|
|
857
|
+
/** The three reads of one case. A read changes only `slower` and `faster`, to `cannot decide`. */
|
|
858
|
+
interface FamilyCase {
|
|
859
|
+
readonly case: string;
|
|
860
|
+
/** The outcome with no correction. */
|
|
861
|
+
readonly outcome: TimeOutcome;
|
|
862
|
+
/** The outcome with Holm over the cases of the family, one side at a time. */
|
|
863
|
+
readonly holm: TimeOutcome;
|
|
864
|
+
/** The outcome when each job must give the same outcome alone. A time verdict has one job, so this read is its outcome. */
|
|
865
|
+
readonly eachJob: TimeOutcome;
|
|
866
|
+
/** The outcome when the Holm read and the read of each job both keep it. */
|
|
867
|
+
readonly eachJobHolm: TimeOutcome;
|
|
868
|
+
/** The p of the side "slower" after the Holm correction, or undefined when the verdict has no p. */
|
|
869
|
+
readonly adjustedSlower: number | undefined;
|
|
870
|
+
/** The p of the side "faster" after the Holm correction, or undefined when the verdict has no p. */
|
|
871
|
+
readonly adjustedFaster: number | undefined;
|
|
872
|
+
}
|
|
873
|
+
/** The counts of the outcomes `slower` and `faster` of one read. */
|
|
874
|
+
interface FamilyCount {
|
|
875
|
+
readonly slower: number;
|
|
876
|
+
readonly faster: number;
|
|
877
|
+
}
|
|
878
|
+
/** The read of a family. */
|
|
879
|
+
interface FamilyRead {
|
|
880
|
+
/** The level of each side of the Holm read. */
|
|
881
|
+
readonly level: number;
|
|
882
|
+
readonly cases: readonly FamilyCase[];
|
|
883
|
+
readonly plain: FamilyCount;
|
|
884
|
+
readonly holm: FamilyCount;
|
|
885
|
+
readonly eachJob: FamilyCount;
|
|
886
|
+
readonly eachJobHolm: FamilyCount;
|
|
887
|
+
/** The smallest p that the draws can give: 1 / (the fewest finite runs + 1). The value is undefined when no case has a p. */
|
|
888
|
+
readonly floor: number | undefined;
|
|
889
|
+
/** The first step of Holm: `level` over the count of the cases with a p. The value is undefined when no case has a p. */
|
|
890
|
+
readonly firstStep: number | undefined;
|
|
891
|
+
/** The lines of the read: one line of counts, one line of the floor, and one line for each case that a read changes. */
|
|
892
|
+
readonly lines: readonly string[];
|
|
893
|
+
}
|
|
894
|
+
/**
|
|
895
|
+
* This function gives the Holm read and the read of each job over a family of cases, as a report. The default `level` is 0.025 for each side.
|
|
896
|
+
* It reads `pSlower` and `pFaster` of each time verdict, and of the pooled verdict of a pooled case. The option `pValues` of a verdict gives them.
|
|
897
|
+
* A case with no p keeps its outcome in the Holm read, and a line gives the count of such cases.
|
|
898
|
+
*/
|
|
899
|
+
export declare function familyRead(items: readonly FamilyItem[], level?: number): FamilyRead;
|
|
900
|
+
/** The options of `familyPower`. */
|
|
901
|
+
interface FamilyPowerOptions {
|
|
902
|
+
/** The count of the cases of the family. */
|
|
903
|
+
readonly family: number;
|
|
904
|
+
/** The true ratio of the candidate time to the baseline time of the first case. The other cases have the ratio 1. The default is 1. */
|
|
905
|
+
readonly ratio?: number;
|
|
906
|
+
/** The count of the rounds of each case in each job. Each round is one case of the time verdict. The default is 5. */
|
|
907
|
+
readonly rounds?: number;
|
|
908
|
+
/** The count of the jobs. The default is 2. */
|
|
909
|
+
readonly jobs?: number;
|
|
910
|
+
/** The standard deviation of the log time of one arm in one round. The default is 0.1. */
|
|
911
|
+
readonly sigma?: number;
|
|
912
|
+
/**
|
|
913
|
+
* The standard deviation of a shift of the log time of the candidate in one job, a new draw for each case and job. A shift
|
|
914
|
+
* models a job whose machine changes the candidate more than the baseline. The default is 0, the best case for the read of each job.
|
|
915
|
+
*/
|
|
916
|
+
readonly jobShift?: number;
|
|
917
|
+
/** The count of the seeded families. The default is 200. */
|
|
918
|
+
readonly trials?: number;
|
|
919
|
+
/** The seed of the draws. The default is 1. */
|
|
920
|
+
readonly seed?: number | string;
|
|
921
|
+
/** The level of each side of the Holm read. The default is 0.025. */
|
|
922
|
+
readonly level?: number;
|
|
923
|
+
/** The options of each pooled verdict. */
|
|
924
|
+
readonly verdict?: VerdictOptions;
|
|
925
|
+
}
|
|
926
|
+
/** The shares of the trials of `familyPower`, for each read. */
|
|
927
|
+
interface FamilyShares {
|
|
928
|
+
readonly plain: number;
|
|
929
|
+
readonly holm: number;
|
|
930
|
+
readonly eachJob: number;
|
|
931
|
+
readonly eachJobHolm: number;
|
|
932
|
+
}
|
|
933
|
+
/** The result of `familyPower`. */
|
|
934
|
+
interface FamilyPower {
|
|
935
|
+
readonly trials: number;
|
|
936
|
+
/** The share of the trials with one case of ratio 1 or more that reads slower: the false-slower rate of the family. */
|
|
937
|
+
readonly falseSlower: FamilyShares;
|
|
938
|
+
/** The share of the trials in which the first case reads slower. With the ratio 1, this is a false slower too. */
|
|
939
|
+
readonly firstSlower: FamilyShares;
|
|
940
|
+
}
|
|
941
|
+
/**
|
|
942
|
+
* This function draws `trials` families of pooled verdicts and gives the share of each read. Each arm of each round adds a
|
|
943
|
+
* normal noise of `sigma` to the log time. Without `jobShift`, the jobs have no shift between them, so the read of each job has its best case.
|
|
944
|
+
*/
|
|
945
|
+
export declare function familyPower(options: FamilyPowerOptions): FamilyPower;
|
|
839
946
|
/** The name of a record with no CPU model. */
|
|
840
947
|
export declare const UNKNOWN_MODEL = "unknown";
|
|
841
948
|
/** One value of one case, from one read on one CPU model. */
|
|
@@ -1488,5 +1595,5 @@ interface Rounds {
|
|
|
1488
1595
|
* keeps the work.
|
|
1489
1596
|
*/
|
|
1490
1597
|
export declare function timeRounds(arms: Readonly<Record<Arm, () => number>>, options: RoundsOptions): Rounds;
|
|
1491
|
-
export { type Arm, type ArmModels, type ArmPair, type Balanced, type Band, type BandKind, type BandOptions, type BudgetLook, type BudgetLooksOptions, type BudgetLooksVerdict, type BudgetMore, type BudgetOptions, type BudgetOutcome, type BudgetResult, type BudgetRound, type BudgetVerdict, type CaseBudget, type CaseGate, type CaseInterval, type CaseLimit, type CaseRatio, type CaseResults, type CaseTail, type CaseTailLimit, type Comparison, type ControlFactors, type ControlOptions, type ControlRead, type ControlRow, type EntryCount, type Gate, type GateCaseOutcome, type GateJobRead, type GateOutcome, type GroupCounts, type GroupFactor, type GrowthOptions, type GrowthOutcome, type GrowthRound, type GrowthStep, type GrowthVerdict, type GuardRead, type JobLimitVerdict, type JobRecords, type JobVerdict, type JointClaim, type JointControl, type JointMeasure, type JointVerdict, type Ladder, type LadderDimension, type LadderOptions, type LadderVerdict, type LimitOnModel, type LimitOptions, type LimitOutcome, type LimitVerdict, type MeasureCheck, type MeasureCheckOptions, type MeasureChecks, type MeasureFinding, type MeasureFindingKind, type MeasureRow, type MeasureRule, type MeasuredFactor, type MedianBudget, type ModelLimits, type ModelRead, type ModelRow, type ModelStatus, type ModelTest, type ModelTestOptions, type NoControl, type NoFactor, type NoiseCheck, type NotSlowerOptions, type NotSlowerRead, type NotSlowerVerdict, type OrderSize, type PairedTime, type PartnerRead, type PoolFacts, type PoolOptions, type PooledJob, type PooledLimitVerdict, type PooledRecords, type PooledVerdict, type Power, type PowerOptions, type QuantileBudget, type RateBudget, type ResultRead, type ResultRow, type ResultRows, type ResultVerdict, type Rounds, type RoundsOptions, type RowRead, type RunPairs, type Rung, type RungBudget, type RungEvidence, type RungRecord, type RungVerdict, type SpreadRead, type TailFalseFails, type TailGainCase, type TailLimit, type TailLimitOptions, type TailLimitVerdict, type TailRuleOptions, type TimeOutcome, type TimeVerdict, type VerdictOptions, type VerdictRule, type VisibleShift, type WinClaim, type WorstBudget, armOrder, caseRatios, checkPairedTime, firstArm, orderSize };
|
|
1598
|
+
export { type Arm, type ArmModels, type ArmPair, type Balanced, type Band, type BandKind, type BandOptions, type BudgetLook, type BudgetLooksOptions, type BudgetLooksVerdict, type BudgetMore, type BudgetOptions, type BudgetOutcome, type BudgetResult, type BudgetRound, type BudgetVerdict, type CaseBudget, type CaseGate, type CaseInterval, type CaseLimit, type CaseRatio, type CaseResults, type CaseTail, type CaseTailLimit, type Comparison, type ControlFactors, type ControlOptions, type ControlRead, type ControlRow, type EntryCount, type FamilyCase, type FamilyCount, type FamilyItem, type FamilyPower, type FamilyPowerOptions, type FamilyRead, type FamilyShares, type Gate, type GateCaseOutcome, type GateJobRead, type GateOutcome, type GroupCounts, type GroupFactor, type GrowthOptions, type GrowthOutcome, type GrowthRound, type GrowthStep, type GrowthVerdict, type GuardRead, type JobLimitVerdict, type JobRecords, type JobVerdict, type JointClaim, type JointControl, type JointMeasure, type JointVerdict, type Ladder, type LadderDimension, type LadderOptions, type LadderVerdict, type LimitOnModel, type LimitOptions, type LimitOutcome, type LimitVerdict, type MeasureCheck, type MeasureCheckOptions, type MeasureChecks, type MeasureFinding, type MeasureFindingKind, type MeasureRow, type MeasureRule, type MeasuredFactor, type MedianBudget, type ModelLimits, type ModelRead, type ModelRow, type ModelStatus, type ModelTest, type ModelTestOptions, type NoControl, type NoFactor, type NoiseCheck, type NotSlowerOptions, type NotSlowerRead, type NotSlowerVerdict, type OrderSize, type PairedTime, type PartnerRead, type PoolFacts, type PoolOptions, type PooledJob, type PooledLimitVerdict, type PooledRecords, type PooledVerdict, type Power, type PowerOptions, type QuantileBudget, type RateBudget, type ResultRead, type ResultRow, type ResultRows, type ResultVerdict, type Rounds, type RoundsOptions, type RowRead, type RunPairs, type Rung, type RungBudget, type RungEvidence, type RungRecord, type RungVerdict, type SpreadRead, type TailFalseFails, type TailGainCase, type TailLimit, type TailLimitOptions, type TailLimitVerdict, type TailRuleOptions, type TimeOutcome, type TimeVerdict, type VerdictOptions, type VerdictRule, type VisibleShift, type WinClaim, type WorstBudget, armOrder, caseRatios, checkPairedTime, firstArm, orderSize };
|
|
1492
1599
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Comparison"],"sources":["../src/budget.ts","../src/growth.ts","../src/verdict.ts","../src/limit.ts","../src/merge.ts","../src/gate.ts","../src/control.ts","../src/ladder.ts","../src/model.ts","../src/tail.ts","../src/measures.ts","../src/power.ts","../src/results.ts","../src/rounds.ts"],"mappings":";;;UAQiB;;WAEN;;WAEA;WACA;;;KAIC;;UAGK;;WAEN;;WAEA;;WAEA;;;UAIM;WACN;;WAEA;;WAEA;WACA;;WAEA;;WAEA;;WAEA;WACA;;WAEA;WACA,SAAS;;WAET;;;UAIM;WACN,SAAS;;WAET;WACA;WACA;WACA;WACA,gBAAgB;;;;;;;;;;;;wBAyDX,cAAc,iBAAiB,eAAe,aAAa,eAAe,SAAS,gBAAgB;;UAyBlG;WACN;WACA;;;;;;qBAOE,uBAAuB;;UAOnB;;WAEN;;WAEA;;WAEA,iBAAiB;;WAEjB;;;UAIM;WACN;WACA;;;UAIM,2BAA2B;;WAEjC;;WAEA,eAAe;;WAEf;;;;;;wBAOK,gBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;wBAoDhC,mBAAmB,iBAAiB,eAAe,aAAa,eAAe,SAAS,qBAAqB;;UCrO5G;;WAEN;;WAEA;;WAEA;;;KAIC;;UAGK;;WAEN;;WAEA;;WAEA;;;UAIM;WACN;WACA;;WAEA;;WAEA;WACA;WACA;;WAEA;;WAEA;WACA,SAAS;;;UAIH;;WAEN,SAAS;WACT;WACA;WACA,gBAAgB;;;wBAIX,cAAc,iBAAiB,eAAe,SAAS,gBAAgB;;;;;;KC/C3E;;UAGK;;WAEN,OAAO;;WAEP;;WAEA;;WAEA,YAAY;;;UAIN;;WAEN;WACA,MAAM;;;;;;WAMN;;WAEA;WACA;;WAEA;;;wBAIK,OAAO,aAAa,cAAc,UAAS,cAAmB;;;;;wBAoB9D,SAAS,aAAa,cAAc;;UAWnC;;WAEN,kBAAkB;;WAElB;;WAEA;;;;;WAKA,OAAO,QAAQ;;;UAIT;;WAEN;;WAEA;;WAEA;WACA;;WAEA;;;;;;;;wBASK,WAAW,MAAM,aAAa,iBAAc;;KAmBhD;;;;;;;KAQA;;UAGK,uBAAuB;;WAE7B,OAAO;;;;;WAKP;;;;;;WAMA;;WAEA;;;;;WAKA,OAAO;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["Comparison"],"sources":["../src/budget.ts","../src/growth.ts","../src/verdict.ts","../src/limit.ts","../src/merge.ts","../src/gate.ts","../src/control.ts","../src/ladder.ts","../src/family.ts","../src/model.ts","../src/tail.ts","../src/measures.ts","../src/power.ts","../src/results.ts","../src/rounds.ts"],"mappings":"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"}
|