From cad26409f004fe61ad896903c73f5461b960669f Mon Sep 17 00:00:00 2001 From: Archivist Date: Thu, 14 Apr 2022 20:54:02 +0000 Subject: [PATCH] Add 'main.cpp' --- main.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 main.cpp diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..5527139 --- /dev/null +++ b/main.cpp @@ -0,0 +1,55 @@ +#include +#include "ChaPRNG.h" +#include +#include +#include + +using namespace std::chrono_literals; + + +template +static void PRNGBuild(benchmark::State& state) { + std::random_device dev; + std::array seed{ + dev(),dev(),dev(),dev(), + dev(),dev(),dev(),dev(), + dev(),dev(),dev(),dev() + }; + ChaPRNG prng(seed); + for(auto _ : state) + prng(); +} + +BENCHMARK(PRNGBuild<8, false, false>); +BENCHMARK(PRNGBuild<12, false, false>); +BENCHMARK(PRNGBuild<16, false, false>); +BENCHMARK(PRNGBuild<20, false, false>); + +BENCHMARK(PRNGBuild<8, true, false>); +BENCHMARK(PRNGBuild<12, true, false>); +BENCHMARK(PRNGBuild<16, true, false>); +BENCHMARK(PRNGBuild<20, true, false>); + +BENCHMARK(PRNGBuild<8, false, true>); +BENCHMARK(PRNGBuild<12, false, true>); +BENCHMARK(PRNGBuild<16, false, true>); +BENCHMARK(PRNGBuild<20, false, true>); + +BENCHMARK(PRNGBuild<4, true, true>); +BENCHMARK(PRNGBuild<6, true, true>); +BENCHMARK(PRNGBuild<8, true, true>); +BENCHMARK(PRNGBuild<12, true, true>); +BENCHMARK(PRNGBuild<16, true, true>); +BENCHMARK(PRNGBuild<20, true, true>); + + + +static void std_mtPRNGBuild(benchmark::State& state) { + std::random_device dev; + std::mt19937 prng(dev()); + for(auto _ : state) + prng(); +} +BENCHMARK(std_mtPRNGBuild); + +BENCHMARK_MAIN();