From ce17a94d5c40a7639ea36f430a1d63a28aaf889e Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Fri, 25 Nov 2022 17:31:36 -0500 Subject: [PATCH] adding a function to generate pseudorandom numbers --- std/func.act | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/std/func.act b/std/func.act index e6ebf23..394886f 100644 --- a/std/func.act +++ b/std/func.act @@ -73,4 +73,19 @@ export function min(pint a, b) : pint } } +export function lfsr64(int prev) : int +{ + int count, lfsr, bit; + chp { + lfsr := prev; + count := 0; + *[ count < 64 -> + bit := ((lfsr >> 63) ^ (lfsr >> 3) ^ (lfsr >> 2) ^ (lfsr >> 0)) & 1; + lfsr := (lfsr >> 1) | (bit << 63); + count := count + 1 + ]; + self := lfsr + } +} + }