78{
79 for (size_t expn = expn_start; expn <= expn_end_fast; expn++) {
80 printf(
"%ld", expn); fflush(stdout);
81
86
89 group_elements, scalars);
90 printf(
"\t%lld", result_bos_coster.first); fflush(stdout);
91
94 group_elements, scalars);
95 printf(
"\t%lld", result_djb.first); fflush(stdout);
96
97 if (compare_answers && (result_bos_coster.second != result_djb.second)) {
98 fprintf(stderr, "Answers NOT MATCHING (bos coster != djb)\n");
99 }
100
101 if (expn <= expn_end_naive) {
104 group_elements, scalars);
105 printf(
"\t%lld", result_naive.first); fflush(stdout);
106
107 if (compare_answers && (result_bos_coster.second != result_naive.second)) {
108 fprintf(stderr, "Answers NOT MATCHING (bos coster != naive)\n");
109 }
110 }
111
113 }
114}
std::pair< long long, std::vector< GroupT > > run_result_t
run_result_t< GroupT > profile_multiexp(test_instances_t< GroupT > group_elements, test_instances_t< FieldT > scalars)
test_instances_t< FieldT > generate_scalars(size_t count, size_t size)
test_instances_t< GroupT > generate_group_elements(size_t count, size_t size)