7#ifndef SECP256K1_BENCH_H
8#define SECP256K1_BENCH_H
18#define FP_MULT (1000000LL)
32 x_abs = x < 0 ? -x : x;
53 ptr =
sizeof(buffer) - 1;
57 for (i = 0; i <
c; ++i) {
58 buffer[--ptr] =
'0' + (y % 10);
66 buffer[--ptr] =
'0' + (y % 10);
74 printf(
"%5.*s",
g, &buffer[ptr]);
75 printf(
"%-*s",
FP_EXP, &buffer[ptr +
g]);
83 for (i = 0; i <
count; i++) {
103 printf(
"%-30s, ",
name);
136 for (i = 0; i < n; i++) {
151 char*
env =
getenv(
"SECP256K1_BENCH_ITERS");
156 printf(
"Error: Value of SECP256K1_BENCH_ITERS is not a positive integer: %s\n\n",
env);
static int get_iters(int default_iters)
static void print_output_table_header_row(void)
static void print_number(const int64_t x)
static void run_benchmark(char *name, void(*benchmark)(void *, int), void(*setup)(void *), void(*teardown)(void *, int), void *data, int count, int iter)
static int have_invalid_args(int argc, char **argv, char **valid_args, size_t n)
static int have_flag(int argc, char **argv, char *flag)
static int teardown(void)
static int64_t gettime_i64(void)
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.