# 
# RandomSource: XO_SHI_RO_128_SS
# RNG: org.apache.commons.rng.core.source32.XoShiRo128StarStar
# Seed: 4baba74af369fdba1e52d6d044f1baac
# 
# Java: 1.8.0_202
# Runtime: Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
# JVM: Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
# OS: Linux 3.13.0-91-generic amd64
# Native byte-order: LITTLE_ENDIAN
# Output byte-order: LITTLE_ENDIAN
# 
# Analyzer: /home/ah403/rng/PractRand/RNG_test_094 stdin32 -tf 1 -te 0 -tlmin 1KB -tlmax 4TB -multithreaded 
# 
# Start: 2019-10-24 07:57:01
# 
RNG_test using PractRand version 0.94
RNG = RNG_stdin32, seed = unknown
test set = core, folding = standard (32 bit)

rng=RNG_stdin32, seed=unknown
length= 1 kilobyte (2^10 bytes), time= 0.2 seconds
  no anomalies in 6 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 kilobytes (2^11 bytes), time= 0.3 seconds
  no anomalies in 8 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 kilobytes (2^12 bytes), time= 0.5 seconds
  no anomalies in 18 test result(s)

rng=RNG_stdin32, seed=unknown
length= 8 kilobytes (2^13 bytes), time= 0.9 seconds
  no anomalies in 21 test result(s)

rng=RNG_stdin32, seed=unknown
length= 16 kilobytes (2^14 bytes), time= 1.2 seconds
  no anomalies in 26 test result(s)

rng=RNG_stdin32, seed=unknown
length= 32 kilobytes (2^15 bytes), time= 1.7 seconds
  no anomalies in 34 test result(s)

rng=RNG_stdin32, seed=unknown
length= 64 kilobytes (2^16 bytes), time= 2.2 seconds
  no anomalies in 42 test result(s)

rng=RNG_stdin32, seed=unknown
length= 128 kilobytes (2^17 bytes), time= 2.8 seconds
  no anomalies in 50 test result(s)

rng=RNG_stdin32, seed=unknown
length= 256 kilobytes (2^18 bytes), time= 3.4 seconds
  no anomalies in 59 test result(s)

rng=RNG_stdin32, seed=unknown
length= 512 kilobytes (2^19 bytes), time= 4.1 seconds
  no anomalies in 67 test result(s)

rng=RNG_stdin32, seed=unknown
length= 1 megabyte (2^20 bytes), time= 4.8 seconds
  no anomalies in 74 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 megabytes (2^21 bytes), time= 5.6 seconds
  no anomalies in 87 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 megabytes (2^22 bytes), time= 6.4 seconds
  no anomalies in 97 test result(s)

rng=RNG_stdin32, seed=unknown
length= 8 megabytes (2^23 bytes), time= 7.1 seconds
  no anomalies in 106 test result(s)

rng=RNG_stdin32, seed=unknown
length= 16 megabytes (2^24 bytes), time= 8.0 seconds
  no anomalies in 118 test result(s)

rng=RNG_stdin32, seed=unknown
length= 32 megabytes (2^25 bytes), time= 8.9 seconds
  no anomalies in 128 test result(s)

rng=RNG_stdin32, seed=unknown
length= 64 megabytes (2^26 bytes), time= 9.9 seconds
  no anomalies in 140 test result(s)

rng=RNG_stdin32, seed=unknown
length= 128 megabytes (2^27 bytes), time= 11.4 seconds
  no anomalies in 154 test result(s)

rng=RNG_stdin32, seed=unknown
length= 256 megabytes (2^28 bytes), time= 13.6 seconds
  no anomalies in 165 test result(s)

rng=RNG_stdin32, seed=unknown
length= 512 megabytes (2^29 bytes), time= 16.8 seconds
  no anomalies in 178 test result(s)

rng=RNG_stdin32, seed=unknown
length= 1 gigabyte (2^30 bytes), time= 22.9 seconds
  no anomalies in 192 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 gigabytes (2^31 bytes), time= 34.3 seconds
  no anomalies in 204 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 gigabytes (2^32 bytes), time= 55.4 seconds
  no anomalies in 216 test result(s)

rng=RNG_stdin32, seed=unknown
length= 8 gigabytes (2^33 bytes), time= 102 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]Gap-16:A                 R=  +5.0  p =  1.2e-3   unusual          
  ...and 228 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 16 gigabytes (2^34 bytes), time= 194 seconds
  no anomalies in 240 test result(s)

rng=RNG_stdin32, seed=unknown
length= 32 gigabytes (2^35 bytes), time= 378 seconds
  no anomalies in 251 test result(s)

rng=RNG_stdin32, seed=unknown
length= 64 gigabytes (2^36 bytes), time= 745 seconds
  Test Name                         Raw       Processed     Evaluation
  DC6-9x1Bytes-1                    R=  -5.8  p =1-2.0e-3   unusual          
  ...and 262 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 128 gigabytes (2^37 bytes), time= 1473 seconds
  no anomalies in 273 test result(s)

rng=RNG_stdin32, seed=unknown
length= 256 gigabytes (2^38 bytes), time= 2877 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]BCFN(2+7,13-0,T)         R= +10.2  p =  5.7e-5   unusual          
  ...and 283 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 512 gigabytes (2^39 bytes), time= 5793 seconds
  no anomalies in 295 test result(s)

rng=RNG_stdin32, seed=unknown
length= 1 terabyte (2^40 bytes), time= 11561 seconds
  no anomalies in 304 test result(s)

rng=RNG_stdin32, seed=unknown
length= 2 terabytes (2^41 bytes), time= 22753 seconds
  no anomalies in 313 test result(s)

rng=RNG_stdin32, seed=unknown
length= 4 terabytes (2^42 bytes), time= 45995 seconds
  no anomalies in 323 test result(s)

# 
# End: 2019-10-24 20:43:37
# 
# Exit value: 0
# Bytes used: 4398046584832 >= 2^42 (4.4 TB)
# 
# Test duration: 766.6016500000001 minutes
# 
