Source/ThirdParty: Replace Mersenne Twister RNG with a simple but fast RNG
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Mar 2013 05:49:46 +0000 (05:49 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Mar 2013 05:49:46 +0000 (05:49 +0000)
commit7e5b2ea7e268158d67a41727144539edaae922fc
tree909ffcfe3342dcfa4ed5eba421e566e4f245480e
parent5a341b155fb1728a1f81cfe33ae01fe0d95b1714
Source/ThirdParty: Replace Mersenne Twister RNG with a simple but fast RNG
https://bugs.webkit.org/show_bug.cgi?id=111533

Patch by Andrew Bortz <andrew@abortz.net> on 2013-03-07
Reviewed by Adam Barth.

This code is no longer used.

* mt19937ar.c: Removed.

Source/WTF: Replace Mersenne Twister random number generator with a simpler one.
https://bugs.webkit.org/show_bug.cgi?id=111533

Patch by Andrew Bortz <andrew@abortz.net> on 2013-03-07
Reviewed by Adam Barth.

The new generator is only a single line long, but passes all the Diehard
statistical tests and runs ~3x faster than the Mersenne Twister, with a
guaranteed cycle length of 2^64 and only 8 bytes of state.

* wtf/Platform.h: Mersenne Twister defines are no longer needed
* wtf/RandomNumber.cpp:
(WTF::Internal::initializeRandomNumber): State initialization
(WTF::Internal::randomNumber): Actual implementation
(WTF::randomNumber): We don't need to fall back on rand()-based generator anymore,
so this code is greatly simplified.
* wtf/RandomNumber.h:
* wtf/RandomNumberSeed.h:
(WTF::initializeRandomNumberGenerator): This code is no longer needed.
Additionally, the code had an error, since rand() returns 32-bits, so each
initializationBuffer's upper 16-bits has more bits set than random.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@145179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/ThirdParty/ChangeLog
Source/ThirdParty/mt19937ar.c [deleted file]
Source/WTF/ChangeLog
Source/WTF/wtf/Platform.h
Source/WTF/wtf/RandomNumber.cpp
Source/WTF/wtf/RandomNumber.h
Source/WTF/wtf/RandomNumberSeed.h