diff --git a/docs/reference/glib/tmpl/.gitignore b/docs/reference/glib/tmpl/.gitignore
index b95a0a9e2..2d2122ddb 100644
--- a/docs/reference/glib/tmpl/.gitignore
+++ b/docs/reference/glib/tmpl/.gitignore
@@ -4,3 +4,4 @@ gurifuncs.sgml
gvarianttype.sgml
hash_tables.sgml
option.sgml
+random_numbers.sgml
diff --git a/docs/reference/glib/tmpl/random_numbers.sgml b/docs/reference/glib/tmpl/random_numbers.sgml
deleted file mode 100644
index d26ace5fe..000000000
--- a/docs/reference/glib/tmpl/random_numbers.sgml
+++ /dev/null
@@ -1,206 +0,0 @@
-
-Random Numbers
-
-
-pseudo-random number generator
-
-
-
-The following functions allow you to use a portable, fast and good
-pseudo-random number generator (PRNG). It uses the Mersenne Twister
-PRNG, which was originally developed by Makoto Matsumoto and Takuji
-Nishimura. Further information can be found at www.math.keio.ac.jp/~matumoto/emt.html.
-
-
-
-If you just need a random number, you simply call the
-g_random_* functions, which will create a globally
-used #GRand and use the according g_rand_* functions
-internally. Whenever you need a stream of reproducible random numbers, you
-better create a #GRand yourself and use the g_rand_*
-functions directly, which will also be slightly faster. Initializing a #GRand
-with a certain seed will produce exactly the same series of random numbers
-on all platforms. This can thus be used as a seed for e.g. games.
-
-
-
-The g_rand*_range functions will return high quality
-equally distributed random numbers, whereas for example the
-(g_random_int()%max) approach often doesn't
-yield equally distributed numbers.
-
-
-
-GLib changed the seeding algorithm for the pseudo-random number
-generator Mersenne Twister, as used by GRand
-and GRandom. This was necessary, because some
-seeds would yield very bad pseudo-random streams. Also the
-pseudo-random integers generated by
-g_rand*_int_range() will have a
-slightly better equal distribution with the new version of GLib.
-
-
-
-The original seeding and generation 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.
-
-
-
-
-
-
-
-
-
-
-
-
-The #GRand struct is an opaque data structure. It should only be
-accessed through the g_rand_* functions.
-
-
-
-
-
-
-@seed:
-@Returns:
-
-
-
-
-
-
-
-@seed:
-@seed_length:
-@Returns:
-
-
-
-
-
-@Returns:
-
-
-
-
-
-
-
-@rand_:
-@Returns:
-
-
-
-
-
-@rand_:
-
-
-
-
-
-@rand_:
-@seed:
-
-
-
-
-
-
-
-@rand_:
-@seed:
-@seed_length:
-
-
-
-
-Returns a random #gboolean from @rand_. This corresponds to a unbiased
-coin toss.
-
-
-@rand_: a #GRand.
-@Returns: a random #gboolean.
-
-
-
-
-
-@rand_:
-@Returns:
-
-
-
-
-
-@rand_:
-@begin:
-@end:
-@Returns:
-
-
-
-
-
-@rand_:
-@Returns:
-
-
-
-
-
-@rand_:
-@begin:
-@end:
-@Returns:
-
-
-
-
-
-@seed:
-
-
-
-
-Returns a random #gboolean. This corresponds to a unbiased coin toss.
-
-
-@Returns: a random #gboolean.
-
-
-
-
-
-@Returns:
-
-
-
-
-
-@begin:
-@end:
-@Returns:
-
-
-
-
-
-@Returns:
-
-
-
-
-
-@begin:
-@end:
-@Returns:
-
-
diff --git a/glib/grand.c b/glib/grand.c
index 8edcca399..231ed13db 100644
--- a/glib/grand.c
+++ b/glib/grand.c
@@ -55,6 +55,56 @@
#include /* For getpid() */
#endif
+/**
+ * SECTION: random_numbers
+ * @title: Random Numbers
+ * @short_description: pseudo-random number generator
+ *
+ * The following functions allow you to use a portable, fast and good
+ * pseudo-random number generator (PRNG). It uses the Mersenne Twister
+ * PRNG, which was originally developed by Makoto Matsumoto and Takuji
+ * Nishimura. Further information can be found at
+ *
+ * www.math.keio.ac.jp/~matumoto/emt.html.
+ *
+ * If you just need a random number, you simply call the
+ * g_random_* functions, which will create a
+ * globally used #GRand and use the according
+ * g_rand_* functions internally. Whenever you
+ * need a stream of reproducible random numbers, you better create a
+ * #GRand yourself and use the g_rand_* functions
+ * directly, which will also be slightly faster. Initializing a #GRand
+ * with a certain seed will produce exactly the same series of random
+ * numbers on all platforms. This can thus be used as a seed for e.g.
+ * games.
+ *
+ * The g_rand*_range functions will return high
+ * quality equally distributed random numbers, whereas for example the
+ * (g_random_int()%max) approach often
+ * doesn't yield equally distributed numbers.
+ *
+ * GLib changed the seeding algorithm for the pseudo-random number
+ * generator Mersenne Twister, as used by
+ * GRand and GRandom.
+ * This was necessary, because some seeds would yield very bad
+ * pseudo-random streams. Also the pseudo-random integers generated by
+ * g_rand*_int_range() will have a slightly better
+ * equal distribution with the new version of GLib.
+ *
+ * The original seeding and generation 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.
+ **/
+
+/**
+ * GRand:
+ *
+ * The #GRand struct is an opaque data structure. It should only be
+ * accessed through the g_rand_* functions.
+ **/
+
G_LOCK_DEFINE_STATIC (global_random);
static GRand* global_random = NULL;
@@ -357,6 +407,14 @@ g_rand_set_seed_array (GRand* rand, const guint32 *seed, guint seed_length)
rand->mt[0] = 0x80000000UL; /* MSB is 1; assuring non-zero initial array */
}
+/**
+ * g_rand_boolean:
+ * @rand_: a #GRand.
+ * @Returns: a random #gboolean.
+ *
+ * Returns a random #gboolean from @rand_. This corresponds to a
+ * unbiased coin toss.
+ **/
/**
* g_rand_int:
* @rand_: a #GRand.
@@ -527,6 +585,12 @@ g_rand_double_range (GRand* rand, gdouble begin, gdouble end)
return g_rand_double (rand) * (end - begin) + begin;
}
+/**
+ * g_random_boolean:
+ * @Returns: a random #gboolean.
+ *
+ * Returns a random #gboolean. This corresponds to a unbiased coin toss.
+ **/
/**
* g_random_int:
*