This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The <random> header so far contains the random number engines documented in the header. None of these are well suited for modern CPUs. There is a variant of the Mersenne twister engines which is explicitly designed to perform well on CPUs with SIMD instructions. The result is an engine with equal properties to the original Mersenne twisters but several times faster. The attached patch implements this new engine. It's in the __gnu_cxx namespace. I added definitions for all the variants defined by the authors. The test suite checks the returned values based on results obtained from the original code. The SIMD optimization is so far done for x86. In all other cases a generic implementation is used. The generic implementation works correctly for little endian machines. For big endian machines someone will come up with fixes. Until then the new default.cc test is expected to fail. I hope this is an uncontroversial change.
Attachment:
d-random-sfmt
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |