1818#include "secp256k1.c"
1919
2020#define POINTS 32768
21+ #ifndef ITERS
2122#define ITERS 10000
23+ #endif
2224
2325typedef struct {
2426 /* Setup once in advance */
@@ -55,13 +57,13 @@ static int bench_callback(secp256k1_scalar* sc, secp256k1_ge* ge, size_t idx, vo
5557 return 1 ;
5658}
5759
58- static void bench_ecmult (void * arg ) {
60+ static void bench_ecmult (void * arg , int iters ) {
5961 bench_data * data = (bench_data * )arg ;
6062
61- size_t count = data -> count ;
6263 int includes_g = data -> includes_g ;
63- size_t iters = 1 + ITERS / count ;
64- size_t iter ;
64+ int iter ;
65+ int count = data -> count ;
66+ iters = iters / data -> count ;
6567
6668 for (iter = 0 ; iter < iters ; ++ iter ) {
6769 data -> ecmult_multi (& data -> ctx -> error_callback , & data -> ctx -> ecmult_ctx , data -> scratch , & data -> output [iter ], data -> includes_g ? & data -> scalars [data -> offset1 ] : NULL , bench_callback , arg , count - includes_g );
@@ -76,10 +78,10 @@ static void bench_ecmult_setup(void* arg) {
7678 data -> offset2 = (data -> count * 0x7f6f537b + 0x6a1a8f49 ) % POINTS ;
7779}
7880
79- static void bench_ecmult_teardown (void * arg ) {
81+ static void bench_ecmult_teardown (void * arg , int iters ) {
8082 bench_data * data = (bench_data * )arg ;
81- size_t iters = 1 + ITERS / data -> count ;
82- size_t iter ;
83+ int iter ;
84+ iters = iters / data -> count ;
8385 /* Verify the results in teardown, to avoid doing comparisons while benchmarking. */
8486 for (iter = 0 ; iter < iters ; ++ iter ) {
8587 secp256k1_gej tmp ;
@@ -188,11 +190,14 @@ int main(int argc, char **argv) {
188190 run_test (& data , i , 1 );
189191 }
190192
191- for (p = 0 ; p <= 11 ; ++ p ) {
192- for (i = 9 ; i <= 16 ; ++ i ) {
193- run_test (& data , i << p , 1 );
193+ if (ITERS > 1 ) {
194+ for (p = 0 ; p <= 11 ; ++ p ) {
195+ for (i = 9 ; i <= 16 ; ++ i ) {
196+ run_test (& data , i << p , 1 );
197+ }
194198 }
195199 }
200+
196201 if (data .scratch != NULL ) {
197202 secp256k1_scratch_space_destroy (data .ctx , data .scratch );
198203 }
0 commit comments