/* @file bernoulligen.hpp */ #pragma once #include "generator.hpp" #include namespace xo { namespace rng { /* Engine: e.g. xo::rng::xoshiro256ss or std::mt19937 */ template class bernoulligen : public generator> { public: using generator_type = generator>; template static generator_type make(Engine engine, double prob) { return generator_type::make(std::move(engine), std::bernoulli_distribution(prob)); } template static generator_type conflip(Engine engine) { return generator_type::make(std::move(engine), std::bernoulli_distribution(0.5)); } }; } /*namespace rng*/ } /*namespace xo*/