60
60
61
61
/* Minimum number of points for which pippenger_wnaf is faster than strauss wnaf */
62
62
#ifdef USE_ENDOMORPHISM
63
- #define ECMULT_PIPPENGER_THRESHOLD 96
63
+ #define ECMULT_PIPPENGER_THRESHOLD 88
64
64
#else
65
- #define ECMULT_PIPPENGER_THRESHOLD 156
65
+ #define ECMULT_PIPPENGER_THRESHOLD 160
66
66
#endif
67
67
68
68
#ifdef USE_ENDOMORPHISM
@@ -716,51 +716,51 @@ static int secp256k1_ecmult_pippenger_wnaf(secp256k1_gej *buckets, int bucket_wi
716
716
*/
717
717
static int secp256k1_pippenger_bucket_window (size_t n ) {
718
718
#ifdef USE_ENDOMORPHISM
719
- if (n <= 4 ) {
719
+ if (n <= 1 ) {
720
720
return 1 ;
721
- } else if (n <= 8 ) {
721
+ } else if (n <= 4 ) {
722
722
return 2 ;
723
- } else if (n <= 40 ) {
723
+ } else if (n <= 20 ) {
724
724
return 3 ;
725
- } else if (n <= 117 ) {
725
+ } else if (n <= 57 ) {
726
726
return 4 ;
727
- } else if (n <= 280 ) {
727
+ } else if (n <= 136 ) {
728
728
return 5 ;
729
- } else if (n <= 480 ) {
729
+ } else if (n <= 235 ) {
730
730
return 6 ;
731
- } else if (n <= 2560 ) {
731
+ } else if (n <= 1260 ) {
732
732
return 7 ;
733
- } else if (n <= 9200 ) {
733
+ } else if (n <= 4420 ) {
734
734
return 9 ;
735
- } else if (n <= 17400 ) {
735
+ } else if (n <= 7880 ) {
736
736
return 10 ;
737
- } else if (n <= 28600 ) {
737
+ } else if (n <= 16050 ) {
738
738
return 11 ;
739
739
} else {
740
740
return PIPPENGER_MAX_BUCKET_WINDOW ;
741
741
}
742
742
#else
743
- if (n <= 2 ) {
743
+ if (n <= 1 ) {
744
744
return 1 ;
745
- } else if (n <= 9 ) {
745
+ } else if (n <= 11 ) {
746
746
return 2 ;
747
- } else if (n <= 42 ) {
747
+ } else if (n <= 45 ) {
748
748
return 3 ;
749
749
} else if (n <= 100 ) {
750
750
return 4 ;
751
- } else if (n <= 280 ) {
751
+ } else if (n <= 275 ) {
752
752
return 5 ;
753
- } else if (n <= 610 ) {
753
+ } else if (n <= 625 ) {
754
754
return 6 ;
755
- } else if (n <= 1920 ) {
755
+ } else if (n <= 1850 ) {
756
756
return 7 ;
757
757
} else if (n <= 3400 ) {
758
758
return 8 ;
759
- } else if (n <= 10240 ) {
759
+ } else if (n <= 9630 ) {
760
760
return 9 ;
761
- } else if (n <= 19000 ) {
761
+ } else if (n <= 17900 ) {
762
762
return 10 ;
763
- } else if (n <= 35000 ) {
763
+ } else if (n <= 32800 ) {
764
764
return 11 ;
765
765
} else {
766
766
return PIPPENGER_MAX_BUCKET_WINDOW ;
@@ -774,30 +774,30 @@ static int secp256k1_pippenger_bucket_window(size_t n) {
774
774
static size_t secp256k1_pippenger_bucket_window_inv (int bucket_window ) {
775
775
switch (bucket_window ) {
776
776
#ifdef USE_ENDOMORPHISM
777
- case 1 : return 4 ;
778
- case 2 : return 8 ;
779
- case 3 : return 40 ;
780
- case 4 : return 117 ;
781
- case 5 : return 280 ;
782
- case 6 : return 480 ;
783
- case 7 : return 2560 ;
784
- case 8 : return 2560 ;
785
- case 9 : return 9200 ;
786
- case 10 : return 17400 ;
787
- case 11 : return 28600 ;
777
+ case 1 : return 1 ;
778
+ case 2 : return 4 ;
779
+ case 3 : return 20 ;
780
+ case 4 : return 57 ;
781
+ case 5 : return 136 ;
782
+ case 6 : return 235 ;
783
+ case 7 : return 1260 ;
784
+ case 8 : return 1260 ;
785
+ case 9 : return 4420 ;
786
+ case 10 : return 7880 ;
787
+ case 11 : return 16050 ;
788
788
case PIPPENGER_MAX_BUCKET_WINDOW : return SIZE_MAX ;
789
789
#else
790
- case 1 : return 2 ;
791
- case 2 : return 9 ;
792
- case 3 : return 42 ;
790
+ case 1 : return 1 ;
791
+ case 2 : return 11 ;
792
+ case 3 : return 45 ;
793
793
case 4 : return 100 ;
794
- case 5 : return 280 ;
795
- case 6 : return 610 ;
796
- case 7 : return 1920 ;
794
+ case 5 : return 275 ;
795
+ case 6 : return 625 ;
796
+ case 7 : return 1850 ;
797
797
case 8 : return 3400 ;
798
- case 9 : return 10240 ;
799
- case 10 : return 19000 ;
800
- case 11 : return 35000 ;
798
+ case 9 : return 9630 ;
799
+ case 10 : return 17900 ;
800
+ case 11 : return 32800 ;
801
801
case PIPPENGER_MAX_BUCKET_WINDOW : return SIZE_MAX ;
802
802
#endif
803
803
}
0 commit comments