1212#include "../mldsa/sign.h"
1313#include "hal.h"
1414
15- #define NWARMUP 10
16- #define NITERATIONS 25
17- #define NTESTS 250
15+ #define NWARMUP 3
16+ #define NITERATIONS 5
17+ #define NTESTS 1000
1818#define MLEN 59
1919#define CTXLEN 1
2020
@@ -35,11 +35,19 @@ static int cmp_uint64_t(const void *a, const void *b)
3535 return (int )((* ((const uint64_t * )a )) - (* ((const uint64_t * )b )));
3636}
3737
38- static void print_median (const char * txt , uint64_t cyc [NTESTS ])
38+ static void print_avg (const char * txt , uint64_t cyc [NTESTS ])
3939{
40- printf ("%10s cycles = %" PRIu64 "\n" , txt , cyc [NTESTS >> 1 ] / NITERATIONS );
40+ uint64_t avg = 0 ;
41+ int i ;
42+ for (i = 0 ; i < NTESTS ; i ++ )
43+ {
44+ avg += cyc [i ];
45+ }
46+ avg /= (NTESTS * NITERATIONS );
47+ printf ("%10s cycles (avg) = %" PRIu64 "\n" , txt , avg );
4148}
4249
50+
4351static int percentiles [] = {1 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 99 };
4452
4553static void print_percentile_legend (void )
@@ -142,15 +150,16 @@ static int bench(void)
142150 CHECK (ret == 0 );
143151 }
144152
153+ print_avg ("keypair" , cycles_kg );
154+ print_avg ("sign" , cycles_sign );
155+ print_avg ("verify" , cycles_verify );
156+
157+ printf ("\n" );
158+
145159 qsort (cycles_kg , NTESTS , sizeof (uint64_t ), cmp_uint64_t );
146160 qsort (cycles_sign , NTESTS , sizeof (uint64_t ), cmp_uint64_t );
147161 qsort (cycles_verify , NTESTS , sizeof (uint64_t ), cmp_uint64_t );
148162
149- print_median ("keypair" , cycles_kg );
150- print_median ("sign" , cycles_sign );
151- print_median ("verify" , cycles_verify );
152-
153- printf ("\n" );
154163
155164 print_percentile_legend ();
156165
0 commit comments