From a72cd1f4a2987654752e1899e8e9da18d36c7db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Rivi=C3=A8re?= Date: Thu, 25 Jun 2020 17:14:07 +0200 Subject: [PATCH] deterministic prng fixes #121.(maybe) do we need to expose jiggle(seed) so people could set the seed? (I don't think so) --- src/jiggle.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/jiggle.js b/src/jiggle.js index de46cff..26061a2 100644 --- a/src/jiggle.js +++ b/src/jiggle.js @@ -1,3 +1,8 @@ -export default function() { - return (Math.random() - 0.5) * 1e-6; +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a = 1664525, + c = 1013904223, + m = 4294967296; +let s = 1; +export default function(seed) { + return (s = seed || (a * s + c) % m) / m * 1e-6; }