[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [proposal] Concerns about math.random
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Sat, 22 Mar 2014 18:49:21 -0300
> There are CSPRNGs with better performance than MT[1].
>
> [1] http://burtleburtle.net/bob/rand/isaacafa.html
There is also the simpler taus88 which can now be coded in Lua 5.3.
Here is the C code from the original paper:
http://www.ams.org/journals/mcom/1996-65-213/S0025-5718-96-00696-5/
static unsigned long s1, s2, s3, b;
double taus88()
{ /* Generates numbers between 0 and 1. */
b = (((s1 << 13) ^ s1) >> 19);
s1 = (((s1 & 4294967294UL) << 12) ^ b);
b = (((s2 << 2) ^ s2) >> 25);
s2 = (((s2 & 4294967288UL) << 4) ^ b);
b = (((s3 << 3) ^ s3) >> 11);
s3 = (((s3 & 4294967280UL) << 17) ^ b);
return ((s1 ^ s2 ^ s3) * 2.3283064365e-10);
}
It is quite easy to use this instead of MT in my lrandom.
I have the code already. If anyone is interested just drop me a line.