# 
# RandomSource: XO_SHI_RO_128_PP
# RNG: org.apache.commons.rng.core.source32.XoShiRo128PlusPlus
# Seed: ecede629ea8882404450f87b4166f873
# 
# 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-26 04:28:26
# 
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.4 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]DC6-9x1Bytes-1           R=  -3.9  p =1-1.0e-3   mildly suspicious
  ...and 17 test result(s) without anomalies

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.3 seconds
  no anomalies in 26 test result(s)

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

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

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

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

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

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

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

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

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

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

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

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

rng=RNG_stdin32, seed=unknown
length= 128 megabytes (2^27 bytes), time= 13.1 seconds
  Test Name                         Raw       Processed     Evaluation
  DC6-9x1Bytes-1                    R=  -5.5  p =1-8.2e-4   unusual          
  ...and 153 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 256 megabytes (2^28 bytes), time= 15.7 seconds
  Test Name                         Raw       Processed     Evaluation
  DC6-9x1Bytes-1                    R=  -5.9  p =1-5.6e-4   mildly suspicious
  ...and 164 test result(s) without anomalies

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

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

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

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

rng=RNG_stdin32, seed=unknown
length= 8 gigabytes (2^33 bytes), time= 107 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]Gap-16:B                 R=  -4.8  p =1-5.2e-4   unusual          
  ...and 228 test result(s) without anomalies

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

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

rng=RNG_stdin32, seed=unknown
length= 64 gigabytes (2^36 bytes), time= 734 seconds
  no anomalies in 263 test result(s)

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

rng=RNG_stdin32, seed=unknown
length= 256 gigabytes (2^38 bytes), time= 2808 seconds
  no anomalies in 284 test result(s)

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

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

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

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

# 
# End: 2019-10-26 14:50:56
# 
# Exit value: 0
# Bytes used: 4398046584832 >= 2^42 (4.4 TB)
# 
# Test duration: 622.4934666666667 minutes
# 
