diff options
Diffstat (limited to 'shell/random.h')
-rw-r--r-- | shell/random.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/shell/random.h b/shell/random.h new file mode 100644 index 0000000..2d29a60 --- /dev/null +++ b/shell/random.h @@ -0,0 +1,19 @@ +/* vi: set sw=4 ts=4: */ +/* + * $RANDOM support. + * + * Copyright (C) 2008 Denys Vlasenko + * + * Licensed under GPLv2, see file LICENSE in this tarball for details. + */ + +typedef struct random_t { + /* Random number generators */ + int32_t galois_LFSR; /* Galois LFSR (fast but weak). signed! */ + uint32_t LCG; /* LCG (fast but weak) */ +} random_t; + +#define INIT_RANDOM_T(rnd, nonzero, v) \ + ((rnd)->galois_LFSR = (nonzero), (rnd)->LCG = (v)) + +uint32_t next_random(random_t *rnd) FAST_FUNC; |