1 #include <bz/math/random.h>
3 #include <bz/math/math.h>
7 float bzRandomFloat(float max) {
8 uint32_t v = pcg32_random() % 1000;
9 float value = (float)v / 1000.0f;
11 //return ((float)pcg32_random() / (float)UINTMAX_MAX);// * max;
14 float bzRandomFloatRange(float v1, float v2) {
18 float min = bzMin(v1, v2);
19 float max = bzMax(v1, v2);
20 float v = bzRandomFloat(bzAbs(max - min)) * bzSgn(max - min);
25 uint32_t bzRandomInteger(uint32_t max) {
26 return pcg32_boundedrand(max);
29 int32_t bzRandomIntegerRange(int32_t v1, int32_t v2) {
33 int32_t min = bzMin(v1, v2);
34 int32_t max = bzMax(v1, v2);
35 int32_t v = bzRandomInteger(bzAbs(max - min)) * bzSgn(max - min);
40 void *bzRandomArrayValue(size_t count, size_t arrayTypeSize, void *array) {
41 uint32_t idx = bzRandomInteger(count);
42 return array + idx * arrayTypeSize;