# 
# RandomSource: WELL_19937_C
# RNG: org.apache.commons.rng.core.source32.Well19937c
# Seed: 048f3ce1dbb2a465a810e4c253634064b1243ef8e1c0969acab02b16708e86eb3688587c5c4ca023a4acc04f87c808d2e86921553e1c7e7267d2a049202169251c79dd1a6390b6230661f4c317352eca9d73b65163f78b831a2b95caf61fb8dda7d2b91ab1acb11325effb184ff346ad8ea02a5f60481f908d028693d6b5672d90608af3391fa0ff4a50f85582e4cf5d5e5ab95402477c8dd674881859073f8db80ebeac8565bd35d58d78eb6ecbdc449de689e1b5a202a1e4dca7b1666862ff29eb3c0aaa1b015f6d18090b75b7db22a3da22b3c86e3359be10421247379b844eed2e0ffe12319f6b6d6cf4f63d6cc865d91c337b766e7e56b4cd12351047834399b6809228f64b18064c7a72d75ffa84af784b05b4f7296d1f32eb4f717d3e50c60fac10177794695a7b1e71a5cd1156f10129f84c74a484f4f2000f85af37e10a58e1cfd610373eae27adba90dafeb321b20200ab13f41b74db3a645de77bcb313e9427dea2373f3b5d8faf2f47464f0df9a941f2daeee978ea07ee6983977e752f2011a6c0d5d99a7e74e9100868c7bc039c218520d327d54bbe0696fd25f1ce0be72e3264a4d8b1344ed78314f64c8ee5e5281606b297a1aae8e7fa7a4efcadbd469ec49f7aa1167516810c5fa021ca93728b4438fe9ccf5d9ab09f331cc1ce1d331e3de4866b4464413736f3f12f7fd7cac11a889d00fdbc74179e04e0
# 
# 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 20:26:07
# 
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
  no anomalies in 18 test result(s)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

rng=RNG_stdin32, seed=unknown
length= 256 megabytes (2^28 bytes), time= 12.8 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= 23.7 seconds
  no anomalies in 192 test result(s)

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

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

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

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

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

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

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

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

rng=RNG_stdin32, seed=unknown
length= 512 gigabytes (2^39 bytes), time= 6800 seconds
  Test Name                         Raw       Processed     Evaluation
  BRank(12):24K(1)                  R=+99759  p~= 0           FAIL !!!!!!!!  
  ...and 294 test result(s) without anomalies

# 
# End: 2019-10-26 22:19:28
# 
# Exit value: 0
# Bytes used: 549755887616 >= 2^39 (549.8 GB)
# 
# Test duration: 113.34108333333333 minutes
# 
