Conversation
|
Implementation: 4865d81 (all 4,215 tests and the full build pass locally). Base-aware tuning: PrimeCert-style comparison. All completed samples are retained (four adjacent AB/BA blocks, CPU 7 on chungus2). Each call uses a fresh kernel checker after draining asynchronous work; expected values use the GMP runtime outside the timer. These are kernel modular-power measurements. Patterns 0–7 respectively use (base, exponent): All raw samples, nanosecondsblock,bits,pattern,pair,arm,kernel_ns
0,31,0,1,primeCertLoop,177764
0,31,0,1,Nat.powMod,64105
0,31,1,1,primeCertLoop,166417
0,31,1,1,Nat.powMod,63725
0,31,2,1,primeCertLoop,97525
0,31,2,1,Nat.powMod,44596
0,31,3,1,primeCertLoop,160558
0,31,3,1,Nat.powMod,60279
0,31,4,1,primeCertLoop,175009
0,31,4,1,Nat.powMod,60861
0,31,5,1,primeCertLoop,167047
0,31,5,1,Nat.powMod,59929
0,31,6,1,primeCertLoop,161520
0,31,6,1,Nat.powMod,59478
0,31,7,1,primeCertLoop,97404
0,31,7,1,Nat.powMod,44486
0,61,0,1,primeCertLoop,350940
0,61,0,1,Nat.powMod,105637
0,61,1,1,primeCertLoop,323229
0,61,1,1,Nat.powMod,103393
0,61,2,1,primeCertLoop,101941
0,61,2,1,Nat.powMod,46259
0,61,3,1,primeCertLoop,331892
0,61,3,1,Nat.powMod,100939
0,61,4,1,primeCertLoop,353083
0,61,4,1,Nat.powMod,108661
0,61,5,1,primeCertLoop,322137
0,61,5,1,Nat.powMod,103753
0,61,6,1,primeCertLoop,332553
0,61,6,1,Nat.powMod,101841
0,61,7,1,primeCertLoop,100099
0,61,7,1,Nat.powMod,45437
0,127,0,1,primeCertLoop,784072
0,127,0,1,Nat.powMod,207448
0,127,1,1,primeCertLoop,712046
0,127,1,1,Nat.powMod,201659
0,127,2,1,primeCertLoop,107819
0,127,2,1,Nat.powMod,48682
0,127,3,1,primeCertLoop,740838
0,127,3,1,Nat.powMod,221678
0,127,4,1,primeCertLoop,781879
0,127,4,1,Nat.powMod,227928
0,127,5,1,primeCertLoop,709461
0,127,5,1,Nat.powMod,203452
0,127,6,1,primeCertLoop,738414
0,127,6,1,Nat.powMod,203571
0,127,7,1,primeCertLoop,102412
0,127,7,1,Nat.powMod,47130
0,255,0,1,primeCertLoop,1622024
0,255,0,1,Nat.powMod,437638
0,255,1,1,primeCertLoop,1437481
0,255,1,1,Nat.powMod,432080
0,255,2,1,primeCertLoop,105136
0,255,2,1,Nat.powMod,56364
0,255,3,1,primeCertLoop,1490650
0,255,3,1,Nat.powMod,526300
0,255,4,1,primeCertLoop,1559101
0,255,4,1,Nat.powMod,574271
0,255,5,1,primeCertLoop,1518961
0,255,5,1,Nat.powMod,440302
0,255,6,1,primeCertLoop,1498821
0,255,6,1,Nat.powMod,437659
0,255,7,1,primeCertLoop,105717
0,255,7,1,Nat.powMod,47691
0,511,0,1,primeCertLoop,3391356
0,511,0,1,Nat.powMod,1119780
0,511,1,1,primeCertLoop,2998554
0,511,1,1,Nat.powMod,1108783
0,511,2,1,primeCertLoop,110804
0,511,2,1,Nat.powMod,62923
0,511,3,1,primeCertLoop,3132814
0,511,3,1,Nat.powMod,1697686
0,511,4,1,primeCertLoop,3360601
0,511,4,1,Nat.powMod,2008226
0,511,5,1,primeCertLoop,2970633
0,511,5,1,Nat.powMod,1104708
0,511,6,1,primeCertLoop,3136108
0,511,6,1,Nat.powMod,1122243
0,511,7,1,primeCertLoop,107129
0,511,7,1,Nat.powMod,49393
0,512,0,1,primeCertLoop,3294072
0,512,0,1,Nat.powMod,1117336
0,512,1,1,primeCertLoop,2957483
0,512,1,1,Nat.powMod,1111637
0,512,2,1,primeCertLoop,111856
0,512,2,1,Nat.powMod,62944
0,512,3,1,primeCertLoop,3104111
0,512,3,1,Nat.powMod,1437691
0,512,4,1,primeCertLoop,3317007
0,512,4,1,Nat.powMod,1979824
0,512,5,1,primeCertLoop,2965184
0,512,5,1,Nat.powMod,1105528
0,512,6,1,primeCertLoop,3109519
0,512,6,1,Nat.powMod,1114331
0,512,7,1,primeCertLoop,106668
0,512,7,1,Nat.powMod,49012
0,521,0,1,primeCertLoop,3435642
0,521,0,1,Nat.powMod,1167961
0,521,1,1,primeCertLoop,3149829
0,521,1,1,Nat.powMod,1176303
0,521,2,1,primeCertLoop,111725
0,521,2,1,Nat.powMod,60540
0,521,3,1,primeCertLoop,3219732
0,521,3,1,Nat.powMod,1392553
0,521,4,1,primeCertLoop,3420951
0,521,4,1,Nat.powMod,1576436
0,521,5,1,primeCertLoop,3043300
0,521,5,1,Nat.powMod,1159258
0,521,6,1,primeCertLoop,3214925
0,521,6,1,Nat.powMod,1159408
0,521,7,1,primeCertLoop,107720
0,521,7,1,Nat.powMod,54030
0,1024,0,1,primeCertLoop,7437834
0,1024,0,1,Nat.powMod,3072865
0,1024,1,1,primeCertLoop,6259778
0,1024,1,1,Nat.powMod,3279661
0,1024,2,1,primeCertLoop,116122
0,1024,2,1,Nat.powMod,74420
0,1024,3,1,primeCertLoop,6841651
0,1024,3,1,Nat.powMod,4290709
0,1024,4,1,primeCertLoop,7384204
0,1024,4,1,Nat.powMod,6337113
0,1024,5,1,primeCertLoop,6681473
0,1024,5,1,Nat.powMod,3140034
0,1024,6,1,primeCertLoop,6909541
0,1024,6,1,Nat.powMod,3084882
0,1024,7,1,primeCertLoop,108121
0,1024,7,1,Nat.powMod,53599
0,2048,0,1,primeCertLoop,19031296
0,2048,0,1,Nat.powMod,9857149
0,2048,1,1,primeCertLoop,14335988
0,2048,1,1,Nat.powMod,14271241
0,2048,2,1,primeCertLoop,141680
0,2048,2,1,Nat.powMod,135911
0,2048,3,1,primeCertLoop,16094864
0,2048,3,1,Nat.powMod,16275232
0,2048,4,1,primeCertLoop,17943815
0,2048,4,1,Nat.powMod,17982022
0,2048,5,1,primeCertLoop,14278923
0,2048,5,1,Nat.powMod,9771894
0,2048,6,1,primeCertLoop,16399937
0,2048,6,1,Nat.powMod,10195401
0,2048,7,1,primeCertLoop,143402
0,2048,7,1,Nat.powMod,83574
0,4096,0,1,primeCertLoop,63358945
0,4096,0,1,Nat.powMod,37920142
0,4096,1,1,primeCertLoop,40436351
0,4096,1,1,Nat.powMod,39764566
0,4096,2,1,primeCertLoop,229640
0,4096,2,1,Nat.powMod,188379
0,4096,3,1,primeCertLoop,48637396
0,4096,3,1,Nat.powMod,50914962
0,4096,4,1,primeCertLoop,59895893
0,4096,4,1,Nat.powMod,58319026
0,4096,5,1,primeCertLoop,40328091
0,4096,5,1,Nat.powMod,42941524
0,4096,6,1,primeCertLoop,52759296
0,4096,6,1,Nat.powMod,47331561
0,4096,7,1,primeCertLoop,253315
0,4096,7,1,Nat.powMod,104595
0,8192,0,1,primeCertLoop,643389670
0,8192,0,1,Nat.powMod,165096943
0,8192,1,1,primeCertLoop,157406725
0,8192,1,1,Nat.powMod,156437268
0,8192,2,1,primeCertLoop,469587
0,8192,2,1,Nat.powMod,353154
0,8192,3,1,primeCertLoop,205112872
0,8192,3,1,Nat.powMod,205905126
0,8192,4,1,primeCertLoop,263568660
0,8192,4,1,Nat.powMod,258648097
0,8192,5,1,primeCertLoop,409957315
0,8192,5,1,Nat.powMod,168988391
0,8192,6,1,primeCertLoop,208564617
0,8192,6,1,Nat.powMod,168349955
0,8192,7,1,primeCertLoop,251863
0,8192,7,1,Nat.powMod,147148
1,31,0,1,Nat.powMod,84625
1,31,0,1,primeCertLoop,181128
1,31,1,1,Nat.powMod,70294
1,31,1,1,primeCertLoop,166367
1,31,2,1,Nat.powMod,51236
1,31,2,1,primeCertLoop,97525
1,31,3,1,Nat.powMod,67851
1,31,3,1,primeCertLoop,163292
1,31,4,1,Nat.powMod,71906
1,31,4,1,primeCertLoop,171364
1,31,5,1,Nat.powMod,66108
1,31,5,1,primeCertLoop,164424
1,31,6,1,Nat.powMod,66809
1,31,6,1,primeCertLoop,164524
1,31,7,1,Nat.powMod,49373
1,31,7,1,primeCertLoop,96543
1,61,0,1,Nat.powMod,116533
1,61,0,1,primeCertLoop,373604
1,61,1,1,Nat.powMod,113719
1,61,1,1,primeCertLoop,334255
1,61,2,1,Nat.powMod,53089
1,61,2,1,primeCertLoop,102391
1,61,3,1,Nat.powMod,109683
1,61,3,1,primeCertLoop,335998
1,61,4,1,Nat.powMod,118545
1,61,4,1,primeCertLoop,355137
1,61,5,1,Nat.powMod,109873
1,61,5,1,primeCertLoop,323880
1,61,6,1,Nat.powMod,106007
1,61,6,1,primeCertLoop,328897
1,61,7,1,Nat.powMod,51977
1,61,7,1,primeCertLoop,99337
1,127,0,1,Nat.powMod,228649
1,127,0,1,primeCertLoop,804262
1,127,1,1,Nat.powMod,212375
1,127,1,1,primeCertLoop,714479
1,127,2,1,Nat.powMod,63795
1,127,2,1,primeCertLoop,105587
1,127,3,1,Nat.powMod,235950
1,127,3,1,primeCertLoop,744103
1,127,4,1,Nat.powMod,244403
1,127,4,1,primeCertLoop,785584
1,127,5,1,Nat.powMod,215630
1,127,5,1,primeCertLoop,707699
1,127,6,1,Nat.powMod,213967
1,127,6,1,primeCertLoop,737343
1,127,7,1,Nat.powMod,55212
1,127,7,1,primeCertLoop,102743
1,255,0,1,Nat.powMod,455816
1,255,0,1,primeCertLoop,1619650
1,255,1,1,Nat.powMod,433032
1,255,1,1,primeCertLoop,1442658
1,255,2,1,Nat.powMod,60049
1,255,2,1,primeCertLoop,104154
1,255,3,1,Nat.powMod,558638
1,255,3,1,primeCertLoop,1502126
1,255,4,1,Nat.powMod,599409
1,255,4,1,primeCertLoop,1570437
1,255,5,1,Nat.powMod,446441
1,255,5,1,primeCertLoop,1439143
1,255,6,1,Nat.powMod,442506
1,255,6,1,primeCertLoop,1490048
1,255,7,1,Nat.powMod,68482
1,255,7,1,primeCertLoop,105846
1,511,0,1,Nat.powMod,1140380
1,511,0,1,primeCertLoop,3378608
1,511,1,1,Nat.powMod,1132849
1,511,1,1,primeCertLoop,2963192
1,511,2,1,Nat.powMod,72428
1,511,2,1,primeCertLoop,108391
1,511,3,1,Nat.powMod,1706720
1,511,3,1,primeCertLoop,3113085
1,511,4,1,Nat.powMod,2014676
1,511,4,1,primeCertLoop,3287203
1,511,5,1,Nat.powMod,1131096
1,511,5,1,primeCertLoop,2938956
1,511,6,1,Nat.powMod,1146019
1,511,6,1,primeCertLoop,3114206
1,511,7,1,Nat.powMod,62393
1,511,7,1,primeCertLoop,106057
1,512,0,1,Nat.powMod,1144807
1,512,0,1,primeCertLoop,3300933
1,512,1,1,Nat.powMod,1126159
1,512,1,1,primeCertLoop,2952426
1,512,2,1,Nat.powMod,70084
1,512,2,1,primeCertLoop,108901
1,512,3,1,Nat.powMod,1456228
1,512,3,1,primeCertLoop,3107937
1,512,4,1,Nat.powMod,1976199
1,512,4,1,primeCertLoop,3298208
1,512,5,1,Nat.powMod,1118989
1,512,5,1,primeCertLoop,2932907
1,512,6,1,Nat.powMod,1180199
1,512,6,1,primeCertLoop,3476873
1,512,7,1,Nat.powMod,62142
1,512,7,1,primeCertLoop,111776
1,521,0,1,Nat.powMod,1200269
1,521,0,1,primeCertLoop,3458025
1,521,1,1,Nat.powMod,1199398
1,521,1,1,primeCertLoop,3074377
1,521,2,1,Nat.powMod,70384
1,521,2,1,primeCertLoop,114340
1,521,3,1,Nat.powMod,1413585
1,521,3,1,primeCertLoop,3237929
1,521,4,1,Nat.powMod,1617368
1,521,4,1,primeCertLoop,3411686
1,521,5,1,Nat.powMod,1175773
1,521,5,1,primeCertLoop,3072814
1,521,6,1,Nat.powMod,1185406
1,521,6,1,primeCertLoop,3219102
1,521,7,1,Nat.powMod,67039
1,521,7,1,primeCertLoop,107360
1,1024,0,1,Nat.powMod,3076940
1,1024,0,1,primeCertLoop,7420097
1,1024,1,1,Nat.powMod,3088157
1,1024,1,1,primeCertLoop,6262472
1,1024,2,1,Nat.powMod,83634
1,1024,2,1,primeCertLoop,113819
1,1024,3,1,Nat.powMod,4521511
1,1024,3,1,primeCertLoop,7341811
1,1024,4,1,Nat.powMod,5541053
1,1024,4,1,primeCertLoop,7512545
1,1024,5,1,Nat.powMod,3071893
1,1024,5,1,primeCertLoop,6237815
1,1024,6,1,Nat.powMod,3079014
1,1024,6,1,primeCertLoop,6716584
1,1024,7,1,Nat.powMod,63073
1,1024,7,1,primeCertLoop,105146
1,2048,0,1,Nat.powMod,9899512
1,2048,0,1,primeCertLoop,18338390
1,2048,1,1,Nat.powMod,14186116
1,2048,1,1,primeCertLoop,14196762
1,2048,2,1,Nat.powMod,150523
1,2048,2,1,primeCertLoop,123263
1,2048,3,1,Nat.powMod,16048146
1,2048,3,1,primeCertLoop,16023499
1,2048,4,1,Nat.powMod,17909394
1,2048,4,1,primeCertLoop,17845609
1,2048,5,1,Nat.powMod,9757732
1,2048,5,1,primeCertLoop,14348526
1,2048,6,1,Nat.powMod,9835117
1,2048,6,1,primeCertLoop,16147192
1,2048,7,1,Nat.powMod,91846
1,2048,7,1,primeCertLoop,109032
1,4096,0,1,Nat.powMod,41803087
1,4096,0,1,primeCertLoop,61356037
1,4096,1,1,Nat.powMod,41059385
1,4096,1,1,primeCertLoop,40944274
1,4096,2,1,Nat.powMod,285383
1,4096,2,1,primeCertLoop,179907
1,4096,3,1,Nat.powMod,55399810
1,4096,3,1,primeCertLoop,50107365
1,4096,4,1,Nat.powMod,58051329
1,4096,4,1,primeCertLoop,58183375
1,4096,5,1,Nat.powMod,40586915
1,4096,5,1,primeCertLoop,42168638
1,4096,6,1,Nat.powMod,37711983
1,4096,6,1,primeCertLoop,49253259
1,4096,7,1,Nat.powMod,128370
1,4096,7,1,primeCertLoop,120349
1,8192,0,1,Nat.powMod,168959989
1,8192,0,1,primeCertLoop,629743624
1,8192,1,1,Nat.powMod,153165399
1,8192,1,1,primeCertLoop,152874658
1,8192,2,1,Nat.powMod,444980
1,8192,2,1,primeCertLoop,324471
1,8192,3,1,Nat.powMod,204167220
1,8192,3,1,primeCertLoop,215826420
1,8192,4,1,Nat.powMod,261938223
1,8192,4,1,primeCertLoop,260072989
1,8192,5,1,Nat.powMod,174244331
1,8192,5,1,primeCertLoop,412824194
1,8192,6,1,Nat.powMod,169914664
1,8192,6,1,primeCertLoop,214172980
1,8192,7,1,Nat.powMod,311722
1,8192,7,1,primeCertLoop,143843
2,31,0,1,primeCertLoop,182731
2,31,0,1,Nat.powMod,63734
2,31,1,1,primeCertLoop,167379
2,31,1,1,Nat.powMod,62092
2,31,2,1,primeCertLoop,97775
2,31,2,1,Nat.powMod,44867
2,31,3,1,primeCertLoop,164013
2,31,3,1,Nat.powMod,60189
2,31,4,1,primeCertLoop,180328
2,31,4,1,Nat.powMod,61451
2,31,5,1,primeCertLoop,164944
2,31,5,1,Nat.powMod,58517
2,31,6,1,primeCertLoop,162410
2,31,6,1,Nat.powMod,59578
2,31,7,1,primeCertLoop,98275
2,31,7,1,Nat.powMod,45297
2,61,0,1,primeCertLoop,365051
2,61,0,1,Nat.powMod,106909
2,61,1,1,primeCertLoop,326063
2,61,1,1,Nat.powMod,102051
2,61,2,1,primeCertLoop,102502
2,61,2,1,Nat.powMod,46118
2,61,3,1,primeCertLoop,335738
2,61,3,1,Nat.powMod,103764
2,61,4,1,primeCertLoop,358381
2,61,4,1,Nat.powMod,110974
2,61,5,1,primeCertLoop,324400
2,61,5,1,Nat.powMod,106978
2,61,6,1,primeCertLoop,354796
2,61,6,1,Nat.powMod,100710
2,61,7,1,primeCertLoop,101160
2,61,7,1,Nat.powMod,45638
2,127,0,1,primeCertLoop,793285
2,127,0,1,Nat.powMod,209821
2,127,1,1,primeCertLoop,731004
2,127,1,1,Nat.powMod,210432
2,127,2,1,primeCertLoop,105666
2,127,2,1,Nat.powMod,49002
2,127,3,1,primeCertLoop,743271
2,127,3,1,Nat.powMod,227937
2,127,4,1,primeCertLoop,790742
2,127,4,1,Nat.powMod,230922
2,127,5,1,primeCertLoop,723753
2,127,5,1,Nat.powMod,203221
2,127,6,1,primeCertLoop,740568
2,127,6,1,Nat.powMod,205875
2,127,7,1,primeCertLoop,103143
2,127,7,1,Nat.powMod,47040
2,255,0,1,primeCertLoop,1612029
2,255,0,1,Nat.powMod,443006
2,255,1,1,primeCertLoop,1448677
2,255,1,1,Nat.powMod,427274
2,255,2,1,primeCertLoop,106468
2,255,2,1,Nat.powMod,51997
2,255,3,1,primeCertLoop,1544058
2,255,3,1,Nat.powMod,547762
2,255,4,1,primeCertLoop,1611949
2,255,4,1,Nat.powMod,586619
2,255,5,1,primeCertLoop,1451792
2,255,5,1,Nat.powMod,439581
2,255,6,1,primeCertLoop,1508826
2,255,6,1,Nat.powMod,445341
2,255,7,1,primeCertLoop,106388
2,255,7,1,Nat.powMod,48201
2,511,0,1,primeCertLoop,3463834
2,511,0,1,Nat.powMod,1112820
2,511,1,1,primeCertLoop,3049470
2,511,1,1,Nat.powMod,1117967
2,511,2,1,primeCertLoop,110644
2,511,2,1,Nat.powMod,62533
2,511,3,1,primeCertLoop,3164480
2,511,3,1,Nat.powMod,1691517
2,511,4,1,primeCertLoop,3343476
2,511,4,1,Nat.powMod,2017570
2,511,5,1,primeCertLoop,2975480
2,511,5,1,Nat.powMod,1109594
2,511,6,1,primeCertLoop,3129919
2,511,6,1,Nat.powMod,1127291
2,511,7,1,primeCertLoop,106919
2,511,7,1,Nat.powMod,54772
2,512,0,1,primeCertLoop,3317777
2,512,0,1,Nat.powMod,1119679
2,512,1,1,primeCertLoop,2988079
2,512,1,1,Nat.powMod,1102655
2,512,2,1,primeCertLoop,110784
2,512,2,1,Nat.powMod,62262
2,512,3,1,primeCertLoop,3175337
2,512,3,1,Nat.powMod,1441106
2,512,4,1,primeCertLoop,3332099
2,512,4,1,Nat.powMod,1967626
2,512,5,1,primeCertLoop,2981188
2,512,5,1,Nat.powMod,1106590
2,512,6,1,primeCertLoop,3151972
2,512,6,1,Nat.powMod,1116305
2,512,7,1,primeCertLoop,105947
2,512,7,1,Nat.powMod,50736
2,521,0,1,primeCertLoop,3456503
2,521,0,1,Nat.powMod,1191847
2,521,1,1,primeCertLoop,3071833
2,521,1,1,Nat.powMod,1169103
2,521,2,1,primeCertLoop,109813
2,521,2,1,Nat.powMod,59538
2,521,3,1,primeCertLoop,3318759
2,521,3,1,Nat.powMod,1401307
2,521,4,1,primeCertLoop,3472036
2,521,4,1,Nat.powMod,1669615
2,521,5,1,primeCertLoop,3093575
2,521,5,1,Nat.powMod,1153249
2,521,6,1,primeCertLoop,3237729
2,521,6,1,Nat.powMod,1349209
2,521,7,1,primeCertLoop,107609
2,521,7,1,Nat.powMod,53880
2,1024,0,1,primeCertLoop,7458755
2,1024,0,1,Nat.powMod,3077171
2,1024,1,1,primeCertLoop,6295450
2,1024,1,1,Nat.powMod,3070681
2,1024,2,1,primeCertLoop,115882
2,1024,2,1,Nat.powMod,73970
2,1024,3,1,primeCertLoop,6813719
2,1024,3,1,Nat.powMod,4302617
2,1024,4,1,primeCertLoop,7387149
2,1024,4,1,Nat.powMod,5436798
2,1024,5,1,primeCertLoop,6266678
2,1024,5,1,Nat.powMod,3068728
2,1024,6,1,primeCertLoop,7011802
2,1024,6,1,Nat.powMod,3092784
2,1024,7,1,primeCertLoop,106878
2,1024,7,1,Nat.powMod,53269
2,2048,0,1,primeCertLoop,18728137
2,2048,0,1,Nat.powMod,9864370
2,2048,1,1,primeCertLoop,15220889
2,2048,1,1,Nat.powMod,15011810
2,2048,2,1,primeCertLoop,193486
2,2048,2,1,Nat.powMod,147028
2,2048,3,1,primeCertLoop,16480045
2,2048,3,1,Nat.powMod,16572863
2,2048,4,1,primeCertLoop,18211051
2,2048,4,1,Nat.powMod,18048670
2,2048,5,1,primeCertLoop,14285923
2,2048,5,1,Nat.powMod,9813124
2,2048,6,1,primeCertLoop,16129766
2,2048,6,1,Nat.powMod,9823079
2,2048,7,1,primeCertLoop,117874
2,2048,7,1,Nat.powMod,77605
2,4096,0,1,primeCertLoop,60149438
2,4096,0,1,Nat.powMod,38260827
2,4096,1,1,primeCertLoop,40772089
2,4096,1,1,Nat.powMod,40161754
2,4096,2,1,primeCertLoop,207668
2,4096,2,1,Nat.powMod,182941
2,4096,3,1,primeCertLoop,49022558
2,4096,3,1,Nat.powMod,53832607
2,4096,4,1,primeCertLoop,59684119
2,4096,4,1,Nat.powMod,58378424
2,4096,5,1,primeCertLoop,43785275
2,4096,5,1,Nat.powMod,42449495
2,4096,6,1,primeCertLoop,52362988
2,4096,6,1,Nat.powMod,37698443
2,4096,7,1,primeCertLoop,154629
2,4096,7,1,Nat.powMod,83313
2,8192,0,1,primeCertLoop,648764677
2,8192,0,1,Nat.powMod,169069401
2,8192,1,1,primeCertLoop,159635028
2,8192,1,1,Nat.powMod,161530838
2,8192,2,1,primeCertLoop,459831
2,8192,2,1,Nat.powMod,396738
2,8192,3,1,primeCertLoop,209569167
2,8192,3,1,Nat.powMod,209975249
2,8192,4,1,primeCertLoop,262111350
2,8192,4,1,Nat.powMod,262136548
2,8192,5,1,primeCertLoop,410380694
2,8192,5,1,Nat.powMod,168946109
2,8192,6,1,primeCertLoop,210474849
2,8192,6,1,Nat.powMod,169941393
2,8192,7,1,primeCertLoop,231543
2,8192,7,1,Nat.powMod,146637
3,31,0,1,Nat.powMod,87540
3,31,0,1,primeCertLoop,182460
3,31,1,1,Nat.powMod,69744
3,31,1,1,primeCertLoop,166226
3,31,2,1,Nat.powMod,50925
3,31,2,1,primeCertLoop,98055
3,31,3,1,Nat.powMod,69133
3,31,3,1,primeCertLoop,162421
3,31,4,1,Nat.powMod,69063
3,31,4,1,primeCertLoop,172997
3,31,5,1,Nat.powMod,70104
3,31,5,1,primeCertLoop,163663
3,31,6,1,Nat.powMod,66929
3,31,6,1,primeCertLoop,161610
3,31,7,1,Nat.powMod,48832
3,31,7,1,primeCertLoop,100328
3,61,0,1,Nat.powMod,116713
3,61,0,1,primeCertLoop,367796
3,61,1,1,Nat.powMod,112397
3,61,1,1,primeCertLoop,325793
3,61,2,1,Nat.powMod,52218
3,61,2,1,primeCertLoop,101771
3,61,3,1,Nat.powMod,111204
3,61,3,1,primeCertLoop,333874
3,61,4,1,Nat.powMod,118326
3,61,4,1,primeCertLoop,355928
3,61,5,1,Nat.powMod,111946
3,61,5,1,primeCertLoop,328547
3,61,6,1,Nat.powMod,107149
3,61,6,1,primeCertLoop,340094
3,61,7,1,Nat.powMod,52097
3,61,7,1,primeCertLoop,101711
3,127,0,1,Nat.powMod,229470
3,127,0,1,primeCertLoop,806155
3,127,1,1,Nat.powMod,218193
3,127,1,1,primeCertLoop,728580
3,127,2,1,Nat.powMod,57195
3,127,2,1,primeCertLoop,103744
3,127,3,1,Nat.powMod,238043
3,127,3,1,primeCertLoop,740518
3,127,4,1,Nat.powMod,247246
3,127,4,1,primeCertLoop,781098
3,127,5,1,Nat.powMod,218063
3,127,5,1,primeCertLoop,761388
3,127,6,1,Nat.powMod,217512
3,127,6,1,primeCertLoop,731335
3,127,7,1,Nat.powMod,54741
3,127,7,1,primeCertLoop,103223
3,255,0,1,Nat.powMod,450358
3,255,0,1,primeCertLoop,1660832
3,255,1,1,Nat.powMod,438320
3,255,1,1,primeCertLoop,1443229
3,255,2,1,Nat.powMod,61171
3,255,2,1,primeCertLoop,117033
3,255,3,1,Nat.powMod,539489
3,255,3,1,primeCertLoop,1500704
3,255,4,1,Nat.powMod,608441
3,255,4,1,primeCertLoop,1587483
3,255,5,1,Nat.powMod,435616
3,255,5,1,primeCertLoop,1430821
3,255,6,1,Nat.powMod,456016
3,255,6,1,primeCertLoop,1500404
3,255,7,1,Nat.powMod,66919
3,255,7,1,primeCertLoop,105146
3,511,0,1,Nat.powMod,1155693
3,511,0,1,primeCertLoop,3430204
3,511,1,1,Nat.powMod,1132929
3,511,1,1,primeCertLoop,2972506
3,511,2,1,Nat.powMod,72468
3,511,2,1,primeCertLoop,109773
3,511,3,1,Nat.powMod,1724366
3,511,3,1,primeCertLoop,3144321
3,511,4,1,Nat.powMod,2032493
3,511,4,1,primeCertLoop,3320501
3,511,5,1,Nat.powMod,1127882
3,511,5,1,primeCertLoop,2985595
3,511,6,1,Nat.powMod,1142203
3,511,6,1,primeCertLoop,3119273
3,511,7,1,Nat.powMod,59468
3,511,7,1,primeCertLoop,104655
3,512,0,1,Nat.powMod,1135794
3,512,0,1,primeCertLoop,3310858
3,512,1,1,Nat.powMod,1138838
3,512,1,1,primeCertLoop,2964234
3,512,2,1,Nat.powMod,72087
3,512,2,1,primeCertLoop,108981
3,512,3,1,Nat.powMod,1463429
3,512,3,1,primeCertLoop,3118312
3,512,4,1,Nat.powMod,2026433
3,512,4,1,primeCertLoop,3317307
3,512,5,1,Nat.powMod,1128633
3,512,5,1,primeCertLoop,2974318
3,512,6,1,Nat.powMod,1132069
3,512,6,1,primeCertLoop,3103810
3,512,7,1,Nat.powMod,59068
3,512,7,1,primeCertLoop,104244
3,521,0,1,Nat.powMod,1196193
3,521,0,1,primeCertLoop,3492166
3,521,1,1,Nat.powMod,1176714
3,521,1,1,primeCertLoop,3045965
3,521,2,1,Nat.powMod,69624
3,521,2,1,primeCertLoop,111275
3,521,3,1,Nat.powMod,1405713
3,521,3,1,primeCertLoop,3230839
3,521,4,1,Nat.powMod,1601383
3,521,4,1,primeCertLoop,3490834
3,521,5,1,Nat.powMod,1178376
3,521,5,1,primeCertLoop,3046526
3,521,6,1,Nat.powMod,1207330
3,521,6,1,primeCertLoop,3245641
3,521,7,1,Nat.powMod,67199
3,521,7,1,primeCertLoop,106949
3,1024,0,1,Nat.powMod,3137530
3,1024,0,1,primeCertLoop,7530682
3,1024,1,1,Nat.powMod,3112483
3,1024,1,1,primeCertLoop,6424792
3,1024,2,1,Nat.powMod,85006
3,1024,2,1,primeCertLoop,115822
3,1024,3,1,Nat.powMod,4355786
3,1024,3,1,primeCertLoop,6911834
3,1024,4,1,Nat.powMod,5482496
3,1024,4,1,primeCertLoop,7395782
3,1024,5,1,Nat.powMod,3064492
3,1024,5,1,primeCertLoop,6309211
3,1024,6,1,Nat.powMod,3153995
3,1024,6,1,primeCertLoop,7202134
3,1024,7,1,Nat.powMod,65527
3,1024,7,1,primeCertLoop,106979
3,2048,0,1,Nat.powMod,10040822
3,2048,0,1,primeCertLoop,19014923
3,2048,1,1,Nat.powMod,14667819
3,2048,1,1,primeCertLoop,14488484
3,2048,2,1,Nat.powMod,157544
3,2048,2,1,primeCertLoop,131195
3,2048,3,1,Nat.powMod,16300048
3,2048,3,1,primeCertLoop,16137198
3,2048,4,1,Nat.powMod,18293934
3,2048,4,1,primeCertLoop,18255006
3,2048,5,1,Nat.powMod,9862347
3,2048,5,1,primeCertLoop,14430748
3,2048,6,1,Nat.powMod,9914134
3,2048,6,1,primeCertLoop,16333218
3,2048,7,1,Nat.powMod,93588
3,2048,7,1,primeCertLoop,109613
3,4096,0,1,Nat.powMod,38717675
3,4096,0,1,primeCertLoop,63035486
3,4096,1,1,Nat.powMod,42362145
3,4096,1,1,primeCertLoop,43613621
3,4096,2,1,Nat.powMod,291362
3,4096,2,1,primeCertLoop,210592
3,4096,3,1,Nat.powMod,53123436
3,4096,3,1,primeCertLoop,52078426
3,4096,4,1,Nat.powMod,61000100
3,4096,4,1,primeCertLoop,61583254
3,4096,5,1,Nat.powMod,39063106
3,4096,5,1,primeCertLoop,42115951
3,4096,6,1,Nat.powMod,38609323
3,4096,6,1,primeCertLoop,51679915
3,4096,7,1,Nat.powMod,135901
3,4096,7,1,primeCertLoop,127689
3,8192,0,1,Nat.powMod,178479999
3,8192,0,1,primeCertLoop,644913429
3,8192,1,1,Nat.powMod,155061420
3,8192,1,1,primeCertLoop,165635993
3,8192,2,1,Nat.powMod,505409
3,8192,2,1,primeCertLoop,344270
3,8192,3,1,Nat.powMod,211111813
3,8192,3,1,primeCertLoop,205945607
3,8192,4,1,Nat.powMod,262747254
3,8192,4,1,primeCertLoop,263058074
3,8192,5,1,Nat.powMod,168690630
3,8192,5,1,primeCertLoop,414367943
3,8192,6,1,Nat.powMod,167795714
3,8192,6,1,primeCertLoop,213541174
3,8192,7,1,Nat.powMod,301226
3,8192,7,1,primeCertLoop,151985 |
This PR speeds up kernel evaluation of
Nat.powMod, preserving its GMP runtime implementation and public theorem statements.Use four-bit windows through 512-bit moduli and three-bit windows through 1024 bits. Above that, reduced bases below
2^64use two-bit windows through 4096-bit moduli, then one-bit windows for exponents of at least2^64. Other inputs retain the binary accumulator. Every path is proved correct, including modulus zero.Kernel-check medians for
b^(m-1) mod m, withm = 2^bits - 19andb = 2(the large-base row usesb = m/3):“PrimeCert-style” is the accumulator adapted from Bhavik Mehta's
powModK; these are modular-power timings, not complete primality certificates. Four adjacent AB/BA blocks per comparison retain all 1,216 samples. This PR's column uses upstream-paired samples through 1024 bits and PrimeCert-paired samples above;—means unmeasured. Reproduction and upstream samples; PrimeCert-style samples.The base-dependent choice avoids the large-base regressions of unconditional windows. On additional irregular moduli through 12288 bits, long sparse exponents can favor binary by about 15%; short-exponent dispatch costs can add tens of microseconds. Boundary, module-import, and large-exponent kernel tests cover the new paths; benchmarks include the binary fallback.
Closes #15166. Follow-up to #13490.
🤖 Implemented with Codex assistance.