random: prefer internal uniform distributions

This commit is contained in:
Danny Robson 2020-11-12 11:08:11 +10:00
parent f116422086
commit f091e97f11

View File

@ -10,6 +10,7 @@
#include "coord/traits.hpp" #include "coord/traits.hpp"
#include "rand/generic.hpp" #include "rand/generic.hpp"
#include "rand/distribution/uniform.hpp"
#include <algorithm> #include <algorithm>
#include <array> #include <array>
@ -68,8 +69,8 @@ namespace cruft::random {
template <typename ValueT> template <typename ValueT>
using uniform_distribution = std::conditional_t< using uniform_distribution = std::conditional_t<
std::is_floating_point<ValueT>::value, std::is_floating_point<ValueT>::value,
std::uniform_real_distribution<ValueT>, cruft::rand::distribution::uniform_real_distribution<ValueT>,
std::uniform_int_distribution<ValueT> cruft::rand::distribution::uniform_int_distribution<ValueT>
>; >;
@ -197,7 +198,7 @@ namespace cruft::random {
T* T*
choose (T (&t)[N]) choose (T (&t)[N])
{ {
std::uniform_int_distribution<size_t> dist (0, N - 1); cruft::rand::distribution::uniform_int_distribution<size_t> dist (0, N - 1);
return &t[dist (generator ())]; return &t[dist (generator ())];
} }