diff options
author | David Timber <mieabby@gmail.com> | 2020-01-01 09:50:34 +1100 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2020-01-01 09:50:34 +1100 |
commit | ed809a51fdd1c313cd256301ef6f7211e8394cb1 (patch) | |
tree | 81a3054ce0d42976f80c973e2b6ebf9c1b8b7476 /src/rnd.h | |
parent | 6e456edb2757cf9d28d306afb836aa16780fb912 (diff) |
checkpoint
Diffstat (limited to 'src/rnd.h')
-rw-r--r-- | src/rnd.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/rnd.h b/src/rnd.h new file mode 100644 index 0000000..170a902 --- /dev/null +++ b/src/rnd.h @@ -0,0 +1,27 @@ +#pragma once +#include <stddef.h> +#include <stdint.h> +#include <stdbool.h> + + +struct prne_rnd_engine; +typedef struct prne_rnd_engine prne_rnd_engine_t; +typedef struct prne_rnd_engnie_alloc_result prne_rnd_engnie_alloc_result_t; + +typedef enum { + PRNE_RND_ENGINE_ALLOC_OK, + PRNE_RND_ENGINE_ALLOC_INVALID_SEED, + PRNE_RND_ENGINE_ALLOC_MEM_ERR +} prne_rnd_engine_alloc_result_code_t; + +struct prne_rnd_engnie_alloc_result { + prne_rnd_engine_alloc_result_code_t result; + prne_rnd_engine_t *engine; +}; + + +void prne_init_alloc_rnd_engine_result (prne_rnd_engnie_alloc_result_t *r); +prne_rnd_engnie_alloc_result_t prne_alloc_rnd_engine (const uint32_t *seed); +void prne_free_rnd_engine (prne_rnd_engine_t *engine); +uint32_t prne_rnd_gen_int (prne_rnd_engine_t *engine); +double prne_rnd_gen_double (prne_rnd_engine_t *engine); |