16#ifndef HIGHWAY_HWY_NANOBENCHMARK_H_
17#define HIGHWAY_HWY_NANOBENCHMARK_H_
55#ifndef NANOBENCHMARK_ENABLE_CHECKS
56#define NANOBENCHMARK_ENABLE_CHECKS 0
59#define NANOBENCHMARK_CHECK_ALWAYS(condition) \
60 while (!(condition)) { \
61 fprintf(stderr, "Nanobenchmark check failed at line %d\n", __LINE__); \
65#if NANOBENCHMARK_ENABLE_CHECKS
66#define NANOBENCHMARK_CHECK(condition) NANOBENCHMARK_CHECK_ALWAYS(condition)
68#define NANOBENCHMARK_CHECK(condition)
171 const FuncInput* inputs,
const size_t num_inputs,
175template <
class Closure>
182template <
class Closure>
185 const size_t num_inputs,
Result* results,
188 reinterpret_cast<const uint8_t*
>(&closure), inputs, num_inputs,
MARKER_FUNC func
Definition CodeStreamDecompress.h:34
#define HWY_DLLEXPORT
Definition highway_export.h:13
Definition aligned_allocator.h:27
FuncOutput(*)(const void *, FuncInput) Func
Definition nanobenchmark.h:105
static FuncOutput CallClosure(const Closure *f, const FuncInput input)
Definition nanobenchmark.h:176
size_t FuncInput
Definition nanobenchmark.h:97
HWY_DLLEXPORT size_t Measure(const Func func, const uint8_t *arg, const FuncInput *inputs, const 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:183
HWY_DLLEXPORT int Unpredictable1()
uint64_t FuncOutput
Definition nanobenchmark.h:100
Definition nanobenchmark.h:108
size_t subset_ratio
Definition nanobenchmark.h:121
size_t precision_divisor
Definition nanobenchmark.h:116
bool verbose
Definition nanobenchmark.h:144
size_t min_mode_samples
Definition nanobenchmark.h:134
static constexpr size_t kTimerSamples
Definition nanobenchmark.h:112
size_t max_evals
Definition nanobenchmark.h:141
double target_rel_mad
Definition nanobenchmark.h:137
size_t min_samples_per_eval
Definition nanobenchmark.h:129
double seconds_per_eval
Definition nanobenchmark.h:126
Definition nanobenchmark.h:148
float ticks
Definition nanobenchmark.h:152
float variability
Definition nanobenchmark.h:155
FuncInput input
Definition nanobenchmark.h:149