This commit is contained in:
2023-06-08 15:15:50 +06:00
parent c5585bbb0c
commit 080bbb28fd
22 changed files with 124 additions and 239 deletions

View File

@@ -4,32 +4,18 @@
extern "C" {
#endif
#include "../../../base/std.h"
#include "../../splitmix64/splitmix64.h"
typedef union {
u64 merged;
u32 s[2];
} xoroshiro64_state;
typedef void* xoroshiro64_statePtr;
xoroshiro64_statePtr xoroshiro64_init(u64 seed);
#define xoroshiro64star_init xoroshiro64_init
#define xoroshiro64starstar_init xoroshiro64_init
void xoroshiro64_construct(xoroshiro64_state* state_ptr, u64 seed);
static inline xoroshiro64_statePtr xoroshiro64_initFromTime(void) { return xoroshiro64_init(time(NULL)); }
#define xoroshiro64star_initFromTime xoroshiro64_initFromTime
#define xoroshiro64starstar_initFromTime xoroshiro64_initFromTime
u32 xoroshiro64star_next(xoroshiro64_statePtr);
u32 xoroshiro64starstar_next(xoroshiro64_statePtr);
static inline void xoroshiro64_free(xoroshiro64_statePtr state) {
free(state);
}
#define xoroshiro64star_free xoroshiro64_free
#define xoroshiro64starstar_free xoroshiro64_free
u32 xoroshiro64star_next(xoroshiro64_state*);
u32 xoroshiro64starstar_next(xoroshiro64_state*);
#if __cplusplus
}
#endif
#endif