[erlang-questions] RNG algorithm choice for uniform natural numbers

Raimo Niskanen raimo+erlang-questions@REDACTED
Thu Aug 2 18:25:11 CEST 2018

On Thu, Aug 02, 2018 at 06:10:24PM +0200, Raimo Niskanen wrote:
> On Thu, Aug 02, 2018 at 02:19:17PM +0200, Krzysztof Jurewicz wrote:
> > I’m looking for an algorithm to perform a transparent, reproducible generation of an uniform sequence of natural numbers. There are three RNG algorithms documented in the rand module:
> > 
: :
> I have a pull request for Xoroshiro928** that is a reworked Xoroshiro1024**
> with 58-bit word size, exactly because of speed reasons.  For the next
> step I was thinking about rewriting Xoroshiro256** to 58-bit, but the
> resulting algorighm would not be much faster than Xoroshiro928**,
> it would only have smaller state space, hopefully.  So I am not certain
> that it would be worth implementing.
>     https://github.com/erlang/otp/pull/1857

To get you platform interoperability I could publish the C code I used as
reference for writing Xoroshiro928** in Erlang.
Yes there is a C implementation of it!

> I have never thought about implementing the new 64-bit word size generators
> since nobody has asked for inter-platform compatibility before, and you still
> have to be careful with bit compatibility.  It is only when you request
> the generator word size range that you get the raw numbers.  And for
> floating point if you are lucky that both platforms use the same bits
> (low/high/middle).
> -- 
> / Raimo Niskanen, Erlang/OTP, Ericsson AB


/ Raimo Niskanen, Erlang/OTP, Ericsson AB

More information about the erlang-questions mailing list