@@ -25,6 +25,39 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2525SOFTWARE.
2626*/
2727
28+ /* *
29+ * @defgroup WELL-algorithms algos: WELL - Well-Equidistributed Long-period Linear generators
30+ *
31+ * This is the group for all the CppRandLib implementations of the Well-
32+ * Equidistributed Long-period Linear Generators pseudo-random generators (WELL)
33+ * algorithm.
34+ *
35+ * Well-Equidistributed Long-period Linear Generators (WELL) use linear recurrence
36+ * based on primitive characteristic polynomials associated with left- and right-
37+ * shifts and xor operations to fastly evaluate pseudo-random numbers suites.
38+ *
39+ * WELLs offer large to very large periods with best known results in the evaluation
40+ * of their randomness, as stated in the evaluation done by Pierre L'Ecuyer and
41+ * Richard Simard (Universite de Montreal) in "TestU01: A C Library for Empirical
42+ * Testing of Random Number Generators - ACM Transactions on Mathematical Software,
43+ * vol.33 n.4, pp.22-40, August 2007". It is recommended to use such pseudo-random
44+ * numbers generators rather than LCG ones for serious simulation applications.
45+ * Furthermore, WELLs have proven their great ability to very fastly escape from
46+ * zeroland.
47+ *
48+ * Notice: the algorithm in the 4 different versions implemented here has been coded
49+ * as a direct implementation of their descriptions in the initial paper "Improved
50+ * Long-Period Generators Based on Linear Recurrences Modulo 2", Francois PANNETON
51+ * and Pierre L'ECUYER (Universite de Montreal) and Makoto MATSUMOTO (Hiroshima
52+ * University), in ACM Transactions on Mathematical Software, Vol. 32, No. 1, March
53+ * 2006, Pages 1-16.
54+ * (see https://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng.pdf).
55+ * So, only minimalist optimization has been coded, with the aim at easing the
56+ * verification of its proper implementation.
57+ *
58+ * @{
59+ */
60+
2861
2962// ===========================================================================
3063#include < cstdint>
@@ -52,8 +85,8 @@ SOFTWARE.
5285*
5386* Notice: the algorithm in the 4 different versions implemented here has been coded
5487* as a direct implementation of their descriptions in the initial paper "Improved
55- * Long-Period Generators Based on Linear Recurrences Modulo 2", François PANNETON
56- * and Pierre L'ECUYER (Université de Montréal ) and Makoto MATSUMOTO (Hiroshima
88+ * Long-Period Generators Based on Linear Recurrences Modulo 2", Francois PANNETON
89+ * and Pierre L'ECUYER (Universite de Montreal ) and Makoto MATSUMOTO (Hiroshima
5790* University), in ACM Transactions on Mathematical Software, Vol. 32, No. 1, March
5891* 2006, Pages 1-16.
5992* (see https://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng.pdf).
@@ -493,3 +526,5 @@ inline typename BaseWell<SIZE>::value_type BaseWell<SIZE>::_tempering(
493526 value_type x_{ x ^ (((x << 7 ) & 0xffff'fffful ) & b) };
494527 return x_ ^ (((x_ << 15 ) & 0xffff'fffful ) & c);
495528}
529+
530+ /* * @}*/
0 commit comments