mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-07-12 14:54:10 +00:00
add random::result, random::next
This commit is contained in:
parent
3879666b02
commit
769e18178a
23 changed files with 191 additions and 136 deletions
|
@ -13,7 +13,7 @@
|
|||
#include <sprout/config.hpp>
|
||||
#include <sprout/limits.hpp>
|
||||
#include <sprout/random/random_result.hpp>
|
||||
#include <sprout/generator/functions.hpp>
|
||||
#include <sprout/random/result.hpp>
|
||||
#ifdef SPROUT_WORKAROUND_NOT_TERMINATE_RECURSIVE_CONSTEXPR_FUNCTION_TEMPLATE
|
||||
# include <sprout/workaround/recursive_function_template.hpp>
|
||||
#endif
|
||||
|
@ -66,7 +66,7 @@ namespace sprout {
|
|||
generate_1(Engine const&, EngineResult const& rnd, result_type result) const {
|
||||
return result < result_type(1)
|
||||
? sprout::random::random_result<Engine, uniform_01>(result, rnd.engine(), *this)
|
||||
: generate<D + 1>(sprout::generators::next_generator(rnd), sprout::generators::next_generator(rnd)())
|
||||
: generate<D + 1>(sprout::random::next(rnd), sprout::random::next(rnd)())
|
||||
;
|
||||
}
|
||||
template<int D, typename Engine, typename EngineResult, SPROUT_RECURSIVE_FUNCTION_TEMPLATE_BREAK(D)>
|
||||
|
@ -81,7 +81,7 @@ namespace sprout {
|
|||
return generate_1<D + 1>(
|
||||
eng,
|
||||
rnd,
|
||||
result_type(sprout::generators::generated_value(rnd) - eng.min()) * (
|
||||
result_type(sprout::random::result(rnd) - eng.min()) * (
|
||||
result_type(1) / (
|
||||
result_type(eng.max() - eng.min()) + result_type(
|
||||
sprout::numeric_limits<base_result>::is_integer ? 1 : 0
|
||||
|
@ -101,7 +101,7 @@ namespace sprout {
|
|||
generate_1(Engine const&, EngineResult const& rnd, result_type result) const {
|
||||
return result < result_type(1)
|
||||
? sprout::random::random_result<Engine, uniform_01>(result, rnd.engine(), *this)
|
||||
: generate(sprout::generators::next_generator(rnd), sprout::generators::next_generator(rnd)())
|
||||
: generate(sprout::random::next(rnd), sprout::random::next(rnd)())
|
||||
;
|
||||
}
|
||||
template<typename Engine, typename EngineResult>
|
||||
|
@ -111,7 +111,7 @@ namespace sprout {
|
|||
return generate_1(
|
||||
eng,
|
||||
rnd,
|
||||
result_type(sprout::generators::generated_value(rnd) - eng.min()) * (
|
||||
result_type(sprout::random::result(rnd) - eng.min()) * (
|
||||
result_type(1) / (
|
||||
result_type(eng.max() - eng.min()) + result_type(
|
||||
sprout::numeric_limits<base_result>::is_integer ? 1 : 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue