diff --git a/lookup3.c b/lookup3.c index b802b97..959d7a6 100644 --- a/lookup3.c +++ b/lookup3.c @@ -1,7 +1,5 @@ #include -#include #include -#include #define rot(x, k) (((x) << (k)) | ((x) >> (32 - (k)))) @@ -63,12 +61,3 @@ uint32_t lookup3(const void *key, size_t length, uint32_t initval) { final(a, b, c); return c; } - -int main(void) { - char *a = "Hello!\0"; - int len = strlen(a); - - uint32_t hash = lookup3(a, len, 0); - - printf("%.8X\n", hash); -} diff --git a/prand.h b/prand.h index 3be5e13..3a4ad78 100644 --- a/prand.h +++ b/prand.h @@ -4,9 +4,6 @@ /* * This is a PRNG for non-cryptographic use. May be used on micros given that * the seed is periodically saved to EEPROM or flash. - * - * See: - * https://en.wikipedia.org/wiki/Linear_congruential_generator */ /** diff --git a/xorshift.c b/xorshift.c deleted file mode 100644 index 5dbec96..0000000 --- a/xorshift.c +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include -#include - -struct xorshift32_state { - uint32_t a; -}; - -/* The state must be initialized to non-zero */ -uint32_t xorshift32(struct xorshift32_state *state) { - /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */ - uint32_t x = state->a; - x ^= x << 13; - x ^= x >> 17; - x ^= x << 5; - return state->a = x; -} - -struct xorshift64_state { - uint64_t a; -}; - -/* The state must be initialized to non-zero */ -uint64_t xorshift64(struct xorshift64_state *state) { - uint64_t x = state->a; - x ^= x << 13; - x ^= x >> 7; - x ^= x << 17; - return state->a = x; -} - -/* struct xorshift128_state can alternatively be defined as a pair - of uint64_t or a uint128_t where supported */ -struct xorshift128_state { - uint32_t x[4]; -}; - -/* The state must be initialized to non-zero */ -uint32_t xorshift128(struct xorshift128_state *state) { - /* Algorithm "xor128" from p. 5 of Marsaglia, "Xorshift RNGs" */ - uint32_t t = state->x[3]; - - uint32_t s = state->x[0]; /* Perform a contrived 32-bit shift. */ - state->x[3] = state->x[2]; - state->x[2] = state->x[1]; - state->x[1] = s; - - t ^= t << 11; - t ^= t >> 8; - return state->x[0] = t ^ s ^ (s >> 19); -} - -int main(void) { - struct xorshift32_state s = {}; - s.a = time(0); - - for (int a = 0; a < 10; a++) { - printf("Number %d: %d\n", a, xorshift32(&s)); - } -}