From 04a2ee3f451f933cc1599d20dc315f7174356872 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Tue, 14 Mar 2023 16:53:19 +0100 Subject: [PATCH] fix rng --- .../Demo/CORTEX_M3_MPS2_QEMU_GCC/arbitrary_loads.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/arbitrary_loads.c b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/arbitrary_loads.c index da366b97..57b8c0b9 100644 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/arbitrary_loads.c +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/arbitrary_loads.c @@ -19,10 +19,12 @@ volatile long _NONSENSE_VAR = 0; #define CLAMP(X,LB,UB) CLAMP_CEILING(CLAMP_FLOOR(X,LB),UB) // branch-less clamping // Random numbers === -#define A (unsigned int)2000000011 // prime -#define M (unsigned int)4000000007 // prime -#define C (unsigned int)1283612343 -static unsigned int rng_seed = 2345745; +// glibc +// https://en.wikipedia.org/wiki/Linear_congruential_generator +#define A 1103515245ull +#define M 0x80000000ull +#define C 12345ull +static unsigned long long rng_seed = 2345745ull; #define RNG rng_seed+=((A*((rng_seed+=C)-C)+C) % M) #define RNG_FROM(X) ((A*X+C) % M)