summaryrefslogtreecommitdiffhomepage
path: root/include/rodeo/math/rng.h
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-06-16 01:18:13 -0400
committerrealtradam <[email protected]>2023-06-16 01:18:13 -0400
commita47cc44ef7191d03f8ca1b8d4e6b9dd34fba1807 (patch)
treef7e358545f5043df20695d0cf51dcf8caa10cb12 /include/rodeo/math/rng.h
parent425516a9c53183179c43517f1b6501a790378a05 (diff)
downloadRodeoKit-a47cc44ef7191d03f8ca1b8d4e6b9dd34fba1807.tar.gz
RodeoKit-a47cc44ef7191d03f8ca1b8d4e6b9dd34fba1807.zip
matrix math wrapper as well as various refactors for consistant and cleaner code
Diffstat (limited to 'include/rodeo/math/rng.h')
-rw-r--r--include/rodeo/math/rng.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/rodeo/math/rng.h b/include/rodeo/math/rng.h
new file mode 100644
index 0000000..53f1f76
--- /dev/null
+++ b/include/rodeo/math/rng.h
@@ -0,0 +1,48 @@
+#pragma once
+
+// -- internal --
+#include "rodeo/math/rng_t.h"
+
+// -- system --
+#include <inttypes.h>
+
+void
+rodeo_math_rng_init(void);
+
+void
+rodeo_math_rng_deinit(void);
+
+rodeo_math_rng_generator_t
+rodeo_math_rng_generator_create(uint64_t seed);
+
+void
+rodeo_math_rng_generator_destroy(rodeo_math_rng_generator_t generator);
+
+double
+rodeo_math_rng_double_get(rodeo_math_rng_generator_t generator);
+
+#define irodeo_math_rng_double_get_default() rodeo_math_rng_double_get((rodeo_math_rng_generator_t){0})
+
+float
+rodeo_math_rng_float_get(rodeo_math_rng_generator_t generator);
+
+#define irodeo_math_rng_float_get_default() rodeo_math_rng_float_get((rodeo_math_rng_generator_t){0})
+
+uint64_t
+rodeo_math_rng_uint64_get(rodeo_math_rng_generator_t generator);
+
+#define irodeo_math_rng_uint64_get_default() rodeo_math_rng_uint64_get((rodeo_math_rng_generator_t){0})
+
+uint32_t
+rodeo_math_rng_uint32_get(rodeo_math_rng_generator_t generator);
+
+#define irodeo_math_rng_uint32_get_default() rodeo_math_rng_uint32_get((rodeo_math_rng_generator_t){0})
+
+#define \
+mrodeo_math_rng_do( \
+) \
+ mrodeo_defer_do( \
+ rodeo_math_rng_init(), \
+ rodeo_math_rng_deinit() \
+ )
+