16#ifndef HIGHWAY_HWY_NANOBENCHMARK_H_
17#define HIGHWAY_HWY_NANOBENCHMARK_H_
56#ifndef NANOBENCHMARK_ENABLE_CHECKS
57#define NANOBENCHMARK_ENABLE_CHECKS 0
60#define NANOBENCHMARK_CHECK_ALWAYS(condition) \
61 while (!(condition)) { \
62 fprintf(stderr, "Nanobenchmark check failed at line %d\n", __LINE__); \
66#if NANOBENCHMARK_ENABLE_CHECKS
67#define NANOBENCHMARK_CHECK(condition) NANOBENCHMARK_CHECK_ALWAYS(condition)
69#define NANOBENCHMARK_CHECK(condition)
148 const FuncInput* inputs,
size_t num_inputs,
152template <
class Closure>
159template <
class Closure>
162 const size_t num_inputs,
Result* results,
164 return Measure(
reinterpret_cast<Func>(&CallClosure<Closure>),
165 reinterpret_cast<const uint8_t*
>(&closure), inputs, num_inputs,
#define HWY_DLLEXPORT
Definition highway_export.h:13
FuncOutput(*)(const void *, FuncInput) Func
Definition nanobenchmark.h:87
static FuncOutput CallClosure(const Closure *f, const FuncInput input)
Definition nanobenchmark.h:153
size_t FuncInput
Definition nanobenchmark.h:79
HWY_DLLEXPORT size_t Measure(Func func, const uint8_t *arg, const FuncInput *inputs, size_t num_inputs, Result *results, const Params &p=Params())
static size_t MeasureClosure(const Closure &closure, const FuncInput *inputs, const size_t num_inputs, Result *results, const Params &p=Params())
Definition nanobenchmark.h:160
HWY_DLLEXPORT int Unpredictable1()
uint64_t FuncOutput
Definition nanobenchmark.h:82
Definition nanobenchmark.h:90
size_t subset_ratio
Definition nanobenchmark.h:98
size_t precision_divisor
Definition nanobenchmark.h:93
bool verbose
Definition nanobenchmark.h:121
size_t min_mode_samples
Definition nanobenchmark.h:111
size_t max_evals
Definition nanobenchmark.h:118
double target_rel_mad
Definition nanobenchmark.h:114
size_t min_samples_per_eval
Definition nanobenchmark.h:106
double seconds_per_eval
Definition nanobenchmark.h:103
Definition nanobenchmark.h:125
float ticks
Definition nanobenchmark.h:129
float variability
Definition nanobenchmark.h:132
FuncInput input
Definition nanobenchmark.h:126