124 struct vpPcgStateSetseq_64_t
130 vpPcgStateSetseq_64_t(uint64_t state_ = 0x853c49e6748fea9bULL, uint64_t inc_ = 0xda3e39cb94b95bdbULL)
131 : state(state_), inc(inc_)
134 typedef struct vpPcgStateSetseq_64_t pcg32_random_t;
138 vpUniRand(uint64_t seed, uint64_t seq = 0x123465789ULL);
143 int uniform(
int a,
int b);
144 float uniform(
float a,
float b);
145 double uniform(
double a,
double b);
146 void setSeed(uint64_t initstate, uint64_t initseq);
156 inline static std::vector<T>
shuffleVector(
const std::vector<T> &inputVector)
158 std::vector<T> shuffled = inputVector;
159#if (VISP_CXX_STANDARD <= VISP_CXX_STANDARD_11)
160 std::random_shuffle(shuffled.begin(), shuffled.end());
162 std::shuffle(shuffled.begin(), shuffled.end(), std::mt19937 { std::random_device{}() });
168 uint32_t boundedRand(uint32_t bound);
172 pcg32_random_t m_rng;