subrepo: subdir: "xo-randomgen" merged: "b9b7650d" upstream: origin: "git@github.com:Rconybea/xo-randomgen.git" branch: "main" commit: "b9b7650d" git-subrepo: version: "0.4.9" origin: "???" commit: "???"
33 lines
1,014 B
C++
33 lines
1,014 B
C++
/* @file uniformgen.hpp */
|
|
|
|
#pragma once
|
|
|
|
#include "generator.hpp"
|
|
#include <random>
|
|
|
|
namespace xo {
|
|
namespace rng {
|
|
template <class Engine>
|
|
class uniformgen : public generator<Engine, std::uniform_real_distribution<double>> {
|
|
public:
|
|
using generator_type = generator<Engine, std::uniform_real_distribution<double>>;
|
|
|
|
/* named ctor idiom */
|
|
template <class Eng>
|
|
static generator_type unit(Eng eng) {
|
|
return make_generator(std::move(eng),
|
|
std::uniform_real_distribution<double>(0.0, 1.0));
|
|
}
|
|
|
|
/* named ctor idiom */
|
|
template <class Eng>
|
|
static generator_type interval(Eng eng, double lo, double hi) {
|
|
return make_generator(std::move(eng),
|
|
std::uniform_real_distribution<double>(lo, hi));
|
|
}
|
|
};
|
|
} /*namespace rng*/
|
|
} /*namespace xo*/
|
|
|
|
|
|
/* end uniformgen.hpp */
|