In perl.git, the branch smoke-me/builtin_rng has been created
<http://perl5.git.perl.org/perl.git/commitdiff/3b1d47f943ee5f760d77313be32042bbf445b33c?hp=0000000000000000000000000000000000000000>
at 3b1d47f943ee5f760d77313be32042bbf445b33c (commit)
- Log -----------------------------------------------------------------
commit 3b1d47f943ee5f760d77313be32042bbf445b33c
Author: Yves Orton <[email protected]>
Date: Sun Dec 16 20:31:22 2012 +0100
Enable use of WellRNG512a
M embed.h
M perl.h
M proto.h
commit b8d8c18701336ff287da4ac275704dcc7288073e
Author: Yves Orton <[email protected]>
Date: Sun Dec 16 20:25:29 2012 +0100
Add support for WellRNG 512a
This is a "new" random number generator. Derived from code published at:
http://www.iro.umontreal.ca/~simardr/rng/WELL512a.c
See also:
http://www.iro.umontreal.ca/~panneton/WELLRNG.html
http://www.iro.umontreal.ca/~panneton/well/WELL512a.c
lfsr04.pdf: F. Panneton, P. L'Ecuyer and M. Matsumoto, "Improved
Long-Period Generators Based on Linear Recurrences Modulo 2"
http://www.iro.umontreal.ca/~lecuyer/myftp/papers/lfsr04.pdf
<QUOTE>
In this paper, we propose new generators, with better equidistribution and
âbit-mixingâ
properties for equivalent period length and speed. Approximately half of
the coefficients
of the characteristic polynomial of these generators are nonzero. The state
of our new
generators evolves in a more chaotic way than for the Mersenne twister.
</QUOTE>
Many thanks to Pierre L'Ecuyer for GPL'ing the code so that it could
be used in this project.
M embed.fnc
M embed.h
M proto.h
M util.c
M util.h
commit a4a6cb63811217f6170a87f22f33178b00ae3b31
Author: Yves Orton <[email protected]>
Date: Sat Dec 15 18:55:28 2012 +0100
Enable TINYMT32
Make perl use Tiny MT (32bit) RNG generator.
M perl.h
commit 271587d61c94a7d6a30e1d57ab688eb987c1892e
Author: Yves Orton <[email protected]>
Date: Sat Dec 15 18:40:33 2012 +0100
Add support for using Tiny MT, a 128 bit state RNG
Perl traditionally uses the systems random number generator
for the rand() function. This means that the behavior of code
using it is platform dependent. Worse, sometimes the random
number generator is of poor quality.
This patch adds support for using the TinyMT random number
generator (32 bit version) instead. This generator is of relatively high
quality, uses 128 bits of state and is relatively fast and should be
portable to all of our build targets.
Note that this patch does not *enable* using tinym32, to do that
you need to define TINYMT32 during configure.
Full details of the algorithm can be obtained at
http://www.math.sci.hiroshima-u.ac.jp/[email protected]/MT/TINYMT/
Derived from code by Mutsuo Saito and Makoto Matsumoto published under the
BSD 3-clause license.
Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
University and The University of Tokyo. All rights reserved.
M embed.fnc
M embed.h
M embedvar.h
M intrpvar.h
M pp.c
M proto.h
M sv.c
M util.c
M util.h
-----------------------------------------------------------------------
--
Perl5 Master Repository