  OK   number of configurations                                   got              264  want 264

The proposed method (projection, multiplier declared):
  OK   APS place                                                  got                3  want 3
  OK   APS total                                                  got             2806  want 2806
  OK   APS solved                                                 got              153  want 153
  BAD  CHA place                                                  got               45  want 47
  OK   CHA total                                                  got             3220  want 3220
  OK   CHA solved                                                 got               40  want 40
  OK   both sets                                                  got             6026  want 6026

Head to head of the proposed method:
  OK   APS vs chandrupatla                                        got     (87, 24, 42)  want (87, 24, 42)
  OK   APS vs toms748                                             got     (86, 16, 51)  want (86, 16, 51)
  OK   APS vs brent                                               got    (102, 11, 40)  want (102, 11, 40)
  OK   APS vs itp                                                 got     (132, 3, 18)  want (132, 3, 18)
  OK   APS vs itp_oracle                                          got     (121, 4, 28)  want (121, 4, 28)
  OK   APS vs bisection                                           got      (152, 1, 0)  want (152, 1, 0)
  OK   CHA vs chandrupatla                                        got       (9, 5, 26)  want (9, 5, 26)
  OK   CHA vs toms748                                             got       (31, 1, 8)  want (31, 1, 8)
  OK   CHA vs brent                                               got       (30, 4, 4)  want (30, 4, 4)
  OK   CHA vs itp                                                 got      (17, 0, 23)  want (17, 0, 23)
  OK   CHA vs itp_oracle                                          got      (16, 0, 24)  want (16, 0, 24)
  OK   APS vs Chandrupatla sign test p < 1e-4                     got             True  want True
  OK   CHA vs Chandrupatla sign test p (rounded)                  got            0.006  want 0.006

The constant-free variant (earned projection):
  OK   credit APS place                                           got               29  want 29
  OK   credit APS total                                           got             3568  want 3568
  OK   credit CHA place                                           got               10  want 10
  OK   credit CHA total                                           got             3020  want 3020
  OK   credit both sets                                           got             6588  want 6588
  OK   credit costs 762 more on the canonical set                 got              762  want 762
  OK   credit APS vs chandrupatla                                 got      (79, 3, 71)  want (79, 3, 71)
  OK   credit APS vs toms748                                      got      (77, 9, 67)  want (77, 9, 67)
  OK   credit APS vs brent                                        got      (78, 5, 70)  want (78, 5, 70)
  OK   credit APS vs Chandrupatla sign test p (rounded)           got             0.57  want 0.57

The guards that replace the step instead of projecting it:
  OK   APS unguarded                                              got             2806  want 2806
  OK   CHA unguarded total                                        got             4104  want 4104
  OK   CHA unguarded solved                                       got               35  want 35
  OK   CHA unguarded bound violations                             got               10  want 10
  OK   APS bracket-guard                                          got             7260  want 7260
  OK   APS both-guard                                             got             7239  want 7239

Alefeld-Potra-Shi:
  OK   APS winner                                                 got   'chandrupatla'  want 'chandrupatla'
  OK   APS chandrupatla place                                     got                1  want 1
  OK   APS chandrupatla total                                     got             2787  want 2787
  OK   APS toms748 place                                          got                4  want 4
  OK   APS toms748 total                                          got             2820  want 2820
  OK   APS brent place                                            got                5  want 5
  OK   APS brent total                                            got             2889  want 2889
  OK   APS dekker place                                           got               12  want 12
  OK   APS dekker total                                           got             3158  want 3158
  OK   APS itp_oracle place                                       got               13  want 13
  OK   APS itp_oracle total                                       got             3260  want 3260
  OK   APS ridders place                                          got               20  want 20
  OK   APS ridders total                                          got             3313  want 3313
  OK   APS itp place                                              got               34  want 34
  OK   APS itp total                                              got             3957  want 3957
  OK   APS illinois place                                         got               73  want 73
  OK   APS illinois total                                         got             7045  want 7045
  OK   APS bisection place                                        got               79  want 79
  OK   APS bisection total                                        got             7530  want 7530
  OK   APS regula_falsi place                                     got              244  want 244
  OK   APS regula_falsi total                                     got            10560  want 10560
  OK   APS regula falsi solved                                    got              127  want 127

Chandrupatla:
  OK   CHA rank 1 label                                           got 'pure.sqrt.bracket.project'  want 'pure.sqrt.bracket.project'
  OK   CHA rank 1 solves one more than anyone else                got               41  want 41
  OK   CHA chandrupatla place                                     got                2  want 2
  OK   CHA chandrupatla total                                     got             2441  want 2441
  OK   CHA itp_oracle place                                       got                3  want 3
  BAD  CHA itp_oracle total                                       got             2647  want 2611
  OK   CHA itp place                                              got                6  want 6
  BAD  CHA itp total                                              got             2896  want 2857
  OK   CHA bisection place                                        got               16  want 16
  OK   CHA bisection total                                        got             3090  want 3090
  BAD  CHA toms748 place                                          got              159  want 164
  OK   CHA toms748 total                                          got             4000  want 4000
  BAD  CHA brent place                                            got              227  want 226
  OK   CHA brent total                                            got             4115  want 4115
  OK   CHA brent solved                                           got               38  want 38
  OK   chandrupatla, both sets                                    got             5228  want 5228
  OK   Chandrupatla beats us on both sets                         got             True  want True

Negative results, the regime claims:
  BAD  CHA cbrt over the whole set                                got             4109  want 4099
  OK   single fixed choice, both sets                             got             6026  want 6026
  BAD  switch by benchmark set, both sets                         got             6915  want 6905
  OK   switching is worse than not switching                      got             True  want True
  OK   fun4.1 projection variant                                  got               89  want 89
  OK   fun4.1 cbrt                                                got               32  want 32
  OK   fun4.2 projection variant                                  got               93  want 93
  OK   fun4.2 cbrt                                                got               32  want 32
  OK   fun4.3 projection variant                                  got              113  want 113
  OK   fun4.3 cbrt                                                got               40  want 40
  OK   fun4.4 projection variant                                  got              125  want 125
  OK   fun4.4 cbrt                                                got               47  want 47
  OK   fun4.5 projection variant                                  got              153  want 153
  OK   fun4.5 cbrt                                                got               59  want 59

The law across the grid:
  BAD  mean total, scale=derived3, lin                            got             6893  want 6809
  BAD  mean total, scale=derived3, quad                           got            22315  want 22294
  BAD  mean total, scale=derived, lin                             got             6981  want 6906
  BAD  mean total, scale=derived, quad                            got            22206  want 22167
  BAD  mean total, scale=bracket, lin                             got            10279  want 10263
  BAD  mean total, scale=bracket, quad                            got            19127  want 19137
  OK   mean total, scale=start, lin                               got            16102  want 16102
  OK   mean total, scale=start, quad                              got            15345  want 15345
  OK   every c=1 similarity beats every c=0 similarity            got             True  want True
  OK   similarity ranking                                         got ['ratio', 'exp_abs', 'rational', 'ratio_soft', 'sqrt', 'cbrt', 'exp_sq', 'rat_sq', 'cosine']  want ['ratio', 'exp_abs', 'rational', 'ratio_soft', 'sqrt', 'cbrt', 'exp_sq', 'rat_sq', 'cosine']
  BAD  similarity ratio best                                      got             6560  want 6496
  BAD  similarity exp_abs best                                    got             6895  want 6822
  BAD  similarity rational best                                   got             7118  want 7038
  BAD  similarity ratio_soft best                                 got             9578  want 9502
  BAD  similarity sqrt best                                       got            10546  want 10497
  BAD  similarity cbrt best                                       got            12002  want 11941
  BAD  similarity exp_sq best                                     got            14307  want 14314
  OK   similarity rat_sq best                                     got            15102  want 15102
  OK   similarity cosine best                                     got            16394  want 16394
  OK   scale ranking                                              got ['derived3', 'derived', 'bracket', 'start']  want ['derived3', 'derived', 'bracket', 'start']
  BAD  scale derived3 best                                        got             6560  want 6496
  BAD  scale derived best                                         got             6702  want 6628
  BAD  scale bracket best                                         got             9107  want 9081
  OK   scale start best                                           got            14540  want 14540

The placement modes (each in its own sweep file):
  OK   slope.ratio.derived3.project APS                           got             2848  want 2848
  BAD  slope.ratio.derived3.project CHA                           got             3114  want 3074
  OK   slope.ratio.derived3.project solved                        got              193  want 193
  OK   slope.ratio.derived3.project guarantee (over 2x)           got                0  want 0
  OK   pure+shape+slope.ratio.derived3.safe APS                   got             2527  want 2527
  BAD  pure+shape+slope.ratio.derived3.safe CHA                   got             3126  want 3108
  OK   pure+shape+slope.ratio.derived3.safe solved                got              193  want 193
  OK   pure+shape+slope.ratio.derived3.safe guarantee (over 2x)   got                0  want 0
  OK   pure+dissim+slope.ratio.derived3.project APS               got             2726  want 2726
  BAD  pure+dissim+slope.ratio.derived3.project CHA               got             2799  want 2785
  OK   pure+dissim+slope.ratio.derived3.project solved            got              193  want 193
  OK   pure+dissim+slope.ratio.derived3.project guarantee (over 2x) got                0  want 0
  OK   pure+shape+dissim+slope.ratio.derived3.safe APS            got             2884  want 2884
  BAD  pure+shape+dissim+slope.ratio.derived3.safe CHA            got             2871  want 2859
  OK   pure+shape+dissim+slope.ratio.derived3.safe solved         got              193  want 193
  OK   pure+shape+dissim+slope.ratio.derived3.safe guarantee (over 2x) got                0  want 0
  !!  gate.ratio.derived.project not in sweep_gate.json — stale sweep
  OK   log.ratio_soft.derived.safe APS                            got             6940  want 6940
  BAD  log.ratio_soft.derived.safe CHA                            got             3541  want 3474
  OK   log.ratio_soft.derived.safe solved                         got              193  want 193
  OK   log.ratio_soft.derived.safe guarantee (over 2x)            got                0  want 0
  BAD  pure+dissim+slope.ratio.derived3.safe CHA per-set          got             2695  want 2683

The per-place reading (sweep_order.json):
  OK   far+rational both APS m=1                                  got             4522  want 4522
  OK   far+rational both APS order                                got             3675  want 3675
  BAD  far+rational both CHA m=1                                  got             3406  want 3387
  BAD  far+rational both CHA order                                got             3906  want 3216
  OK   far+rational bracket APS m=1                               got             4606  want 4606
  OK   far+rational bracket APS order                             got             3542  want 3542
  BAD  far+rational bracket CHA m=1                               got             3602  want 3571
  BAD  far+rational bracket CHA order                             got             3950  want 3303
  OK   far+rational credit APS m=1                                got             5190  want 5190
  OK   far+rational credit APS order                              got             4686  want 4686
  OK   far+rational credit CHA m=1                                got             3013  want 3013
  BAD  far+rational credit CHA order                              got             3646  want 2884
  OK   far+rational project APS m=1                               got             6932  want 6932
  OK   far+rational project APS order                             got             6364  want 6364
  BAD  far+rational project CHA m=1                               got             4789  want 4794
  BAD  far+rational project CHA order                             got             5098  want 4559
  OK   far+rational safe APS m=1                                  got             5987  want 5987
  OK   far+rational safe APS order                                got             5229  want 5229
  BAD  far+rational safe CHA m=1                                  got             4134  want 4108
  BAD  far+rational safe CHA order                                got             4503  want 3923
  OK   far+rational step APS m=1                                  got             6435  want 6435
  OK   far+rational step APS order                                got             5551  want 5551
  BAD  far+rational step CHA m=1                                  got             4287  want 4257
  BAD  far+rational step CHA order                                got             4602  want 4022
  OK   far+rational none APS m=1                                  got            10676  want 10676
  OK   far+rational none APS order                                got            10043  want 10043
  OK   far+rational none CHA m=1                                  got             8265  want 8265
  OK   far+rational none CHA order                                got             7794  want 7794
  BAD  cheaper in 7 of 7 safeguards                               got                6  want 7
  OK   false position none solved                                 got              127  want 127
  OK   false position none APS                                    got            10676  want 10676
  OK   false position order solved                                got              128  want 128
  OK   false position order APS                                   got            10043  want 10043
  OK   slope reading none APS                                     got             2806  want 2806
  OK   slope reading order APS                                    got             2854  want 2854
  OK   guarantee family violations                                got                0  want 0

The decision place (sweep_decision.json):
  OK   ratio.band.project APS                                     got             5432  want 5432
  BAD  ratio.band.project CHA                                     got             3059  want 3066
  BAD  ratio.band.credit CHA                                      got             2892  want 2899
  OK   ratio.none.project APS                                     got             2806  want 2806
  OK   ratio.defect.project APS                                   got             2523  want 2523
  OK   ratio.defect.project CHA                                   got             3210  want 3210
  BAD  ratio_soft.simpair.project CHA                             got             2897  want 2868
  OK   defect APS solved                                          got              153  want 153
  OK   defect both sets                                           got             5733  want 5733
  OK   defect is the new canonical best (< 2527)                  got             True  want True
  OK   decision grid guarantee violations                         got                0  want 0
  BAD  band refusal rate %                                        got             63.5  want 63.6
  BAD  defect refusal rate %                                      got              6.6  want 7.0

The gap decomposition (fresh runs of the diagnosis scripts):
Traceback (most recent call last):
  File "/home/valeri/sim-numerics/verify_article.py", line 558, in <module>
    main()
  File "/home/valeri/sim-numerics/verify_article.py", line 220, in main
    verify_gap_decomposition()
  File "/home/valeri/sim-numerics/verify_article.py", line 388, in verify_gap_decomposition
    fl = diag_flat_detectable.main()
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/valeri/sim-numerics/diag_flat_detectable.py", line 54, in main
    groups[key] += states(d["f"], a, b, float(d["root"]))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/valeri/sim-numerics/diag_flat_detectable.py", line 40, in states
    out.append(_local_order(s["x"], s["fx"], s["xp"], s["fp"], s["xp2"], s["fp2"]))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/valeri/sim-numerics/simroot/pure.py", line 592, in _local_order
    theta = f2 * fpp / (fp * fp)
            ~~~~~~~~~^~~~~~~~~~~
ZeroDivisionError: float division by zero
