Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator
ACM Transactions on Modeling and Computer Simulation (TOMACS) - Special issue on uniform random number generation
Native code compilation of Erlang's bit syntax
Proceedings of the 2002 ACM SIGPLAN workshop on Erlang
ERLANG '04 Proceedings of the 2004 ACM SIGPLAN workshop on Erlang
Generating good pseudo-random numbers
Computational Statistics & Data Analysis
TestU01: A C library for empirical testing of random number generators
ACM Transactions on Mathematical Software (TOMS)
A PropEr integration of types and function specifications with property-based testing
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
SFMT pseudo random number generator for Erlang
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
Hi-index | 0.00 |
This paper is a case study of implementing Tiny Mersenne Twister (TinyMT) pseudo random number generator (PRNG) for Erlang. TinyMT has a longer generation period (2127-1) than the stock implementation of Erlang/OTP random module. TinyMT can generate multiple independent number streams by choosing different generation parameters, which is suitable for parallel generation. Our test results of the pure Erlang implementation show the execution time of RNG generating integers with TinyMT is approximately two to six times slower of that with the stock random module. Additional implementation with Native Interface Functions (NIFs) improved the execution speed to approximately three times as faster than that of the random module. The results suggest TinyMT will be a good candidate as an alternative PRNG for Erlang, regarding the increased period of the RNG and the benefit of generating parallel independent random number streams.