add C++14 constexpr version: random generator

This commit is contained in:
bolero-MURAKAMI 2013-11-05 17:39:11 +09:00
parent 2c9f0647f4
commit 230630b45b
6 changed files with 44 additions and 2 deletions

View file

@ -79,6 +79,11 @@ namespace sprout {
SPROUT_CONSTEXPR result_type max() const SPROUT_NOEXCEPT {
return static_max();
}
SPROUT_CXX14_CONSTEXPR result_type operator()() {
typedef sprout::random::detail::const_mod<IntType, p> do_mod;
x_ = do_mod::mult_add(a, do_mod::invert(x_), b);
return x_;
}
SPROUT_CONSTEXPR sprout::random::random_result<inversive_congruential_engine> const operator()() const {
typedef sprout::random::detail::const_mod<IntType, p> do_mod;
return generate(do_mod::mult_add(a, do_mod::invert(x_), b));