1437. Mersenne twister meaningless for word sizes less than two

Section: 29.6.3.2 [rand.eng.mers] Status: C++11 Submitter: INCITS Opened: 2010-08-25 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [rand.eng.mers].

View all issues with C++11 status.

Discussion:

Addresses US-124

The Mersenne twister algorithm is meaningless for word sizes less than two, as there are then insufficient bits available to be “twisted”.

[ Resolution proposed by ballot comment: ]

Insert the following among the relations that are required to hold: 2u < w.

[ 2010 Batavia: The working group concurred with the issue's Proposed Resolution ]

[ Adopted at 2010-11 Batavia ]

Proposed resolution:

Change 29.6.3.2 [rand.eng.mers] p. 4 as indicated:

4 The following relations shall hold: 0 < m, m <= n, 2u < w, r <= w, u <= w, s <= w, t <= w, l <= w, w <= numeric_limits<UIntType>::digits, a <= (1u<<w) - 1u, b <= (1u<<w) - 1u, c <= (1u<<w) - 1u, d <= (1u<<w) - 1u, and f <= (1u<<w) - 1u.