A SIMD optimized version of the WELL512a random algorithm.
Go to file
Peter Pettersson e22f454f7c Aligment improvement.
Small performance increase if the RandomWELL512a_SSE2 is properly SSE
aligned and the single value method is used.
2013-04-22 21:43:31 +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 Minor code standard cleanup. 2013-04-22 21:43:31 +02:00
RandomWELL512a_SSE2.h Aligment improvement. 2013-04-22 21:43:31 +02:00
Timer.h Convert from tabs to spaces. 2013-04-22 21:43:31 +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 Minor code standard cleanup. 2013-04-22 21:43:31 +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.