# core/rng.h ## `Rng::Rng` `explicit Rng(seed_type seed = default_seed()) noexcept : _eng(seed)` ## `Rng::choose_weighted` `template template T choose_weighted(const std::vector> &items)` ## `Rng::choose_weighted` `template template T choose_weighted(std::initializer_list> items)` ## `Rng::poisson` `std::uint64_t poisson(double lambda)` ## `Rng::seed` `void seed(seed_type s) noexcept` ## `Rng::uniform01` `double uniform01()` ## `Rng::uniform_range` `double uniform_range(double lo_inclusive, double hi_exclusive)` ## `Rng::uniform_range` `template::value>> template::value>> Int uniform_range(Int hi_exclusive)` ## `Rng::uniform_range` `template::value>> template::value>> Int uniform_range(Int lo_inclusive, Int hi_exclusive)` ## `choose_weighted` `template T choose_weighted(const std::vector> &items){` ## `choose_weighted` `template T choose_weighted(std::initializer_list> items){` ## `choose_weighted_impl` `return choose_weighted_impl(items.begin(), items.end());` ## `choose_weighted_impl` `return choose_weighted_impl(items.begin(), items.end());` ## `choose_weighted_impl` `template auto choose_weighted_impl(Iter first, Iter last) -> typename std::iterator_traits::value_type::second_type{` ## `default_seed` `static constexpr seed_type default_seed() noexcept{` ## `dofs::seed` `void seed(seed_type s) noexcept{` ## `poisson` `std::uint64_t poisson(double lambda){` ## `uniform01` `double uniform01(){` ## `uniform_range` `Int uniform_range(Int hi_exclusive){` ## `uniform_range` `Int uniform_range(Int lo_inclusive, Int hi_exclusive){` ## `uniform_range` `double uniform_range(double lo_inclusive, double hi_exclusive){`