Improve generation of pseudo-random integers. (#99720, Morten Welinder

2002-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * glib/grand.c (g_rand_int_range): Improve generation of
        pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)

        * README.in, docs/reference/glib/running.sgml,
        docs/reference/glib/tmpl/random_numbers.sgml,
        docs/reference/glib/changes.sgml: Added notes about the new
        algorithm.

2CVS: ----------------------------------------------------------------------
This commit is contained in:
Sebastian Wilhelmi 2002-12-10 13:50:40 +00:00 committed by Sebastian Wilhelmi
parent 657428da90
commit 1c462ac694
10 changed files with 96 additions and 16 deletions

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -1,3 +1,13 @@
2002-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/grand.c (g_rand_int_range): Improve generation of
pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
* README.in, docs/reference/glib/running.sgml,
docs/reference/glib/tmpl/random_numbers.sgml,
docs/reference/glib/changes.sgml: Added notes about the new
algorithm.
2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de> 2002-12-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: use 0 instead of $defattr, as it isn't defined * configure.in: use 0 instead of $defattr, as it isn't defined

View File

@ -34,11 +34,16 @@ Notes about GLib-2.2.0
http://www.math.keio.ac.jp/~matumoto/emt.html http://www.math.keio.ac.jp/~matumoto/emt.html
The original seeding algorithm, as found in GLib-2.0.x, can be used Also the pseudo-random integers generated by g_rand_int_range and
instead of the new one by setting the environment variable g_random_int_range will have a slightly better equal distribution
G_RANDOM_VERSION to the value of "2.0". Use the GLib-2.0 algorithm with the new version of GLib.
only if you have sequences of numbers generated with Glib-2.0 that
you need to reproduce exactly. The original algorithms, as found in GLib-2.0.x, can be used instead
of the new ones by setting the environment variable G_RANDOM_VERSION
to the value of "2.0".
Use the GLib-2.0 algorithms only if you have sequences of numbers
generated with Glib-2.0 that you need to reproduce exactly.
How to report bugs How to report bugs
================== ==================

View File

@ -23,7 +23,10 @@ Incompatible changes made between successing versions of GLib
GLib changed the seeding algorithm for the pseudo-random number GLib changed the seeding algorithm for the pseudo-random number
generator Mersenne Twister, as used by <structname>GRand</structname> generator Mersenne Twister, as used by <structname>GRand</structname>
and <structname>GRandom</structname>. This was necessary, because some and <structname>GRandom</structname>. This was necessary, because some
seeds would yield very bad pseudo-random streams. seeds would yield very bad pseudo-random streams. Also the
pseudo-random integers generated by
<function>g_rand*_int_range()</function> will have a
slightly better equal distribution with the new version of GLib.
</para> </para>
<para> <para>
@ -33,12 +36,13 @@ url="http://www.math.keio.ac.jp/~matumoto/emt.html">http://www.math.keio.ac.jp/~
</para> </para>
<para> <para>
The original seeding algorithm, as found in GLib 2.0.x, can be used The original seeding and generation algorithms, as found in GLib
instead of the new one by setting the environment variable 2.0.x, can be used instead of the new ones by setting the environment
<envar>G_RANDOM_VERSION</envar> to the value of '2.0'. Use the variable <envar>G_RANDOM_VERSION</envar> to the value of '2.0'. Use
GLib-2.0 algorithm only if you have sequences of numbers generated the GLib-2.0 algorithms only if you have sequences of numbers generated
with Glib-2.0 that you need to reproduce exactly. with Glib-2.0 that you need to reproduce exactly.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View File

@ -67,12 +67,13 @@ variables like <envar>LANG</envar>, <envar>PATH</envar> or <envar>HOME</envar>.
<para> <para>
If this environment variable is set to '2.0', the outdated If this environment variable is set to '2.0', the outdated
pseudo-random number seeding algorithm from GLib-2.0 is used pseudo-random number seeding and generation algorithms from
instead of the new better one. Use the GLib-2.0 algorithm only if GLib-2.0 are used instead of the new better ones. Use the GLib-2.0
you have sequences of numbers generated with Glib-2.0 that you algorithms only if you have sequences of numbers generated with
need to reproduce exactly. Glib-2.0 that you need to reproduce exactly.
</para> </para>
</formalpara> </formalpara>
</refsect2> </refsect2>
<refsect2> <refsect2>