29 bench.batch(in.size()).unit(
"byte").run([&] {
38 bench.batch(in.size()).unit(
"byte").run([&] {
48 bench.batch(in.size()).unit(
"byte").run([&] {
59 bench.batch(in.size()).unit(
"byte").run([&] {
70 bench.batch(in.size()).unit(
"byte").run([&] {
81 bench.batch(in.size()).unit(
"byte").run([&] {
91 bench.batch(in.size()).unit(
"byte").run([&] {
99 std::vector<uint8_t> in(32,0);
100 bench.batch(in.size()).unit(
"byte").run([&] {
102 .
Write(in.data(), in.size())
111 std::vector<uint8_t> in(32,0);
112 bench.batch(in.size()).unit(
"byte").run([&] {
114 .
Write(in.data(), in.size())
123 std::vector<uint8_t> in(32,0);
124 bench.batch(in.size()).unit(
"byte").run([&] {
126 .
Write(in.data(), in.size())
135 std::vector<uint8_t> in(32,0);
136 bench.batch(in.size()).unit(
"byte").run([&] {
138 .
Write(in.data(), in.size())
147 std::vector<uint8_t> in(64 * 1024, 0);
148 bench.batch(in.size()).unit(
"byte").run([&] {
157 std::vector<uint8_t> in(64 * 1024, 0);
158 bench.batch(in.size()).unit(
"byte").run([&] {
167 std::vector<uint8_t> in(64 * 1024, 0);
168 bench.batch(in.size()).unit(
"byte").run([&] {
177 std::vector<uint8_t> in(64 * 1024, 0);
178 bench.batch(in.size()).unit(
"byte").run([&] {
188 bench.batch(in.size()).unit(
"byte").run([&] {
197 auto val{rng.rand256()};
209 unsigned char key[32] = {0};
243 std::vector<unsigned char> key{rng.
randbytes(32)};
A hasher class for RIPEMD-160.
CRIPEMD160 & Write(const unsigned char *data, size_t len)
void Finalize(unsigned char hash[OUTPUT_SIZE])
static const size_t OUTPUT_SIZE
CSHA1 & Write(const unsigned char *data, size_t len)
static const size_t OUTPUT_SIZE
void Finalize(unsigned char hash[OUTPUT_SIZE])
A hasher class for SHA-256.
static const size_t OUTPUT_SIZE
void Finalize(unsigned char hash[OUTPUT_SIZE])
CSHA256 & Write(const unsigned char *data, size_t len)
A hasher class for SHA-512.
static constexpr size_t OUTPUT_SIZE
void Finalize(unsigned char hash[OUTPUT_SIZE])
CSHA512 & Write(const unsigned char *data, size_t len)
A class representing MuHash sets.
Optimized SipHash-2-4 implementation for uint256.
uint256 rand256() noexcept
generate a random uint256.
std::vector< B > randbytes(size_t len) noexcept
Generate random bytes.
SHA3_256 & Write(std::span< const unsigned char > data)
SHA3_256 & Finalize(std::span< unsigned char > output)
static constexpr size_t OUTPUT_SIZE
Main entry point to nanobench's benchmarking facility.
static constexpr unsigned int size()
static void SipHash_32b(benchmark::Bench &bench)
static void SHA256_STANDARD(benchmark::Bench &bench)
static void SHA256_SHANI(benchmark::Bench &bench)
static void MuHashPrecompute(benchmark::Bench &bench)
static const uint64_t BUFFER_SIZE
static void SHA256_32b_AVX2(benchmark::Bench &bench)
static void SHA256D64_1024_SHANI(benchmark::Bench &bench)
static void MuHashFinalize(benchmark::Bench &bench)
static void SHA256_AVX2(benchmark::Bench &bench)
static void SHA256_32b_SHANI(benchmark::Bench &bench)
static void SHA256_32b_SSE4(benchmark::Bench &bench)
static void SHA256D64_1024_AVX2(benchmark::Bench &bench)
static void SHA256D64_1024_STANDARD(benchmark::Bench &bench)
static void MuHashMul(benchmark::Bench &bench)
static void SHA256_SSE4(benchmark::Bench &bench)
static void BenchRIPEMD160(benchmark::Bench &bench)
static void SHA3_256_1M(benchmark::Bench &bench)
static void SHA1(benchmark::Bench &bench)
static void SHA512(benchmark::Bench &bench)
static void MuHashDiv(benchmark::Bench &bench)
static void MuHash(benchmark::Bench &bench)
static void SHA256D64_1024_SSE4(benchmark::Bench &bench)
static void SHA256_32b_STANDARD(benchmark::Bench &bench)
void doNotOptimizeAway(Arg &&arg)
Makes sure none of the given arguments are optimized away by the compiler.
void SHA256D64(unsigned char *out, const unsigned char *in, size_t blocks)
Compute multiple double-SHA256's of 64-byte blobs.
std::string SHA256AutoDetect(sha256_implementation::UseImplementation use_implementation)
Autodetect the best available SHA256 implementation.
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.