# 
# RandomSource: KISS
# RNG: org.apache.commons.rng.core.source32.KISSRandom
# Seed: 69dc0d0ae65f59de6475342f45bd7155
# 
# 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-23 19:38:53
# 
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.6  p =1-2.2e-3   unusual          
  ...and 17 test result(s) without anomalies

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

rng=RNG_stdin32, seed=unknown
length= 16 kilobytes (2^14 bytes), time= 1.0 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]DC6-9x1Bytes-1           R=  -4.7  p =1-1.3e-3   unusual          
  ...and 25 test result(s) without anomalies

rng=RNG_stdin32, seed=unknown
length= 32 kilobytes (2^15 bytes), time= 1.4 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= 3.0 seconds
  no anomalies in 50 test result(s)

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

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

rng=RNG_stdin32, seed=unknown
length= 1 megabyte (2^20 bytes), time= 4.9 seconds
  Test Name                         Raw       Processed     Evaluation
  Gap-16:B                          R=  +4.6  p =  1.2e-3   unusual          
  ...and 73 test result(s) without anomalies

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

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

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

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

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

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

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

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

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

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

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

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

rng=RNG_stdin32, seed=unknown
length= 8 gigabytes (2^33 bytes), time= 101 seconds
  no anomalies in 229 test result(s)

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

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

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

rng=RNG_stdin32, seed=unknown
length= 128 gigabytes (2^37 bytes), time= 1487 seconds
  Test Name                         Raw       Processed     Evaluation
  [Low8/32]DC6-9x1Bytes-1           R=  -4.5  p =1-3.5e-3   unusual          
  ...and 272 test result(s) without anomalies

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

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

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

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

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

# 
# End: 2019-10-24 08:45:02
# 
# Exit value: 0
# Bytes used: 4398046584832 >= 2^42 (4.4 TB)
# 
# Test duration: 786.1501499999999 minutes
# 
