}
double UNorm() noexcept {
- return double(Next<std::uint64_t>()) / double(std::numeric_limits<std::uint64_t>::max());
+ return double(Next<std::uint64_t>()) * (1.0 / double(std::numeric_limits<std::uint64_t>::max()));
+ }
+
+ unsigned int UInt(unsigned int below) noexcept {
+ return ((unsigned int)(UNorm() * double(below))) % below;
}
template<class Container>