Code: Select all
'' 3 line PRNG by neil
'' 3line | RNG_test stdin64 -multithreaded
#cmdline "-gen gcc -O 2"
DIm AS Ulongint s1,s2
s1 = 92348739: s2 = 38346595
Dim Shared S As String * 1048576
Dim As Ulong Ptr SPtr, BasePtr
Dim As Long j
SPtr = Cptr(Ulong Ptr, StrPtr( S ))
BasePtr = SPtr
Do
For j = 1 to 262144
'' 3 line PRNG algorithm
s1 = (s1 xor s2 * s1) + (s1 shr 16)
s2 = (s1 xor s1 * s2) + (s2 shl 16)
s1 = (s1 xor s1 * s2) + (s1 shr 16)
*SPtr = s1
SPtr += 1
Next
print s;
SPtr = BasePtr
Loop
rng=RNG_stdin64, seed=unknown
length= 256 gigabytes (2^38 bytes), time= 840 seconds
no anomalies in 369 test result(s)
rng=RNG_stdin64, seed=unknown
length= 512 gigabytes (2^39 bytes), time= 1712 seconds
no anomalies in 383 test result(s)
rng=RNG_stdin64, seed=unknown
length= 1 terabyte (2^40 bytes), time= 3440 seconds
no anomalies in 397 test result(s)