A SIMD optimized version of the WELL512a random algorithm.
Go to file
Peter Pettersson e38d3fae0a Tweaked RandomWELL512a_SSE2::GetUnsigned().
It now has only one return, which seems to help gcc a bit when it's inlined.
2013-04-22 21:43:30 +02:00
VS2012 Inline the classes. 2013-04-22 21:43:30 +02:00
gcc Add makefile for gcc and fix a compile error. 2013-04-20 20:51:09 +02:00
RandomWELL512a.h Inline the classes. 2013-04-22 21:43:30 +02:00
RandomWELL512a_SSE2.h Tweaked RandomWELL512a_SSE2::GetUnsigned(). 2013-04-22 21:43:30 +02:00
Timer.h Initial version. 2013-04-20 19:56:34 +02:00
WELL512a.cpp Initial version. 2013-04-20 19:56:34 +02:00
WELL512a.h Initial version. 2013-04-20 19:56:34 +02:00
license.txt Initial version. 2013-04-20 19:56:34 +02:00
main.cpp Add makefile for gcc and fix a compile error. 2013-04-20 20:51:09 +02:00
readme.txt Initial version. 2013-04-20 19:56:34 +02:00

readme.txt

A SIMD optimized version of the WELL512a random algorithm.

For a detailed description of how the algorithm works, please see the following pages:
1) http://en.wikipedia.org/wiki/Well_equidistributed_long-period_linear
2) http://www.iro.umontreal.ca/~panneton/WELLRNG.html

Benchmarking shows that the SSE2 implementation is generally about 2-3 times faster than
the C implementation by the original authors.

It requires a SSE2 capable CPU (i.e. Intel Pentium 4 or newer, AMD Athlon 64 or newer).

All the source code except WELL512a.cpp|h that contains the original implementation
are released under the BSD license which allows you to include this in any open
or closed source project.