6060
6161/* Minimum number of points for which pippenger_wnaf is faster than strauss wnaf */
6262#ifdef USE_ENDOMORPHISM
63- #define ECMULT_PIPPENGER_THRESHOLD 96
63+ #define ECMULT_PIPPENGER_THRESHOLD 88
6464#else
65- #define ECMULT_PIPPENGER_THRESHOLD 156
65+ #define ECMULT_PIPPENGER_THRESHOLD 160
6666#endif
6767
6868#ifdef USE_ENDOMORPHISM
@@ -716,51 +716,51 @@ static int secp256k1_ecmult_pippenger_wnaf(secp256k1_gej *buckets, int bucket_wi
716716 */
717717static int secp256k1_pippenger_bucket_window (size_t n ) {
718718#ifdef USE_ENDOMORPHISM
719- if (n <= 4 ) {
719+ if (n <= 1 ) {
720720 return 1 ;
721- } else if (n <= 8 ) {
721+ } else if (n <= 4 ) {
722722 return 2 ;
723- } else if (n <= 40 ) {
723+ } else if (n <= 20 ) {
724724 return 3 ;
725- } else if (n <= 117 ) {
725+ } else if (n <= 57 ) {
726726 return 4 ;
727- } else if (n <= 280 ) {
727+ } else if (n <= 136 ) {
728728 return 5 ;
729- } else if (n <= 480 ) {
729+ } else if (n <= 235 ) {
730730 return 6 ;
731- } else if (n <= 2560 ) {
731+ } else if (n <= 1260 ) {
732732 return 7 ;
733- } else if (n <= 9200 ) {
733+ } else if (n <= 4420 ) {
734734 return 9 ;
735- } else if (n <= 17400 ) {
735+ } else if (n <= 7880 ) {
736736 return 10 ;
737- } else if (n <= 28600 ) {
737+ } else if (n <= 16050 ) {
738738 return 11 ;
739739 } else {
740740 return PIPPENGER_MAX_BUCKET_WINDOW ;
741741 }
742742#else
743- if (n <= 2 ) {
743+ if (n <= 1 ) {
744744 return 1 ;
745- } else if (n <= 9 ) {
745+ } else if (n <= 11 ) {
746746 return 2 ;
747- } else if (n <= 42 ) {
747+ } else if (n <= 45 ) {
748748 return 3 ;
749749 } else if (n <= 100 ) {
750750 return 4 ;
751- } else if (n <= 280 ) {
751+ } else if (n <= 275 ) {
752752 return 5 ;
753- } else if (n <= 610 ) {
753+ } else if (n <= 625 ) {
754754 return 6 ;
755- } else if (n <= 1920 ) {
755+ } else if (n <= 1850 ) {
756756 return 7 ;
757757 } else if (n <= 3400 ) {
758758 return 8 ;
759- } else if (n <= 10240 ) {
759+ } else if (n <= 9630 ) {
760760 return 9 ;
761- } else if (n <= 19000 ) {
761+ } else if (n <= 17900 ) {
762762 return 10 ;
763- } else if (n <= 35000 ) {
763+ } else if (n <= 32800 ) {
764764 return 11 ;
765765 } else {
766766 return PIPPENGER_MAX_BUCKET_WINDOW ;
@@ -774,30 +774,30 @@ static int secp256k1_pippenger_bucket_window(size_t n) {
774774static size_t secp256k1_pippenger_bucket_window_inv (int bucket_window ) {
775775 switch (bucket_window ) {
776776#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 ;
788788 case PIPPENGER_MAX_BUCKET_WINDOW : return SIZE_MAX ;
789789#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 ;
793793 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 ;
797797 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 ;
801801 case PIPPENGER_MAX_BUCKET_WINDOW : return SIZE_MAX ;
802802#endif
803803 }
0 commit comments