# 
# RandomSource: PCG_RXS_M_XS_64_OS
# RNG: org.apache.commons.rng.core.source64.PcgRxsMXs64
# Seed: 990bc165f5c2ea2a
# 
# Java: 1.8.0_222
# Runtime: OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)
# JVM: OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
# OS: Linux 4.4.0-169-generic amd64
# Native byte-order: LITTLE_ENDIAN
# Output byte-order: LITTLE_ENDIAN
# 64-bit output: true
# 
# Analyzer: /home/ah403/rng/PractRand/RNG_test_094 stdin64 -tf 1 -te 0 -tlmin 1KB -tlmax 4TB -multithreaded 
# 
# Start: 2019-11-23 16:34:08
# 
RNG_test using PractRand version 0.94
RNG = RNG_stdin64, seed = unknown
test set = core, folding = standard (64 bit)

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

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

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

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

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

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

rng=RNG_stdin64, seed=unknown
length= 64 kilobytes (2^16 bytes), time= 1.6 seconds
  no anomalies in 52 test result(s)

rng=RNG_stdin64, seed=unknown
length= 128 kilobytes (2^17 bytes), time= 2.1 seconds
  no anomalies in 59 test result(s)

rng=RNG_stdin64, seed=unknown
length= 256 kilobytes (2^18 bytes), time= 2.5 seconds
  no anomalies in 72 test result(s)

rng=RNG_stdin64, seed=unknown
length= 512 kilobytes (2^19 bytes), time= 3.1 seconds
  no anomalies in 81 test result(s)

rng=RNG_stdin64, seed=unknown
length= 1 megabyte (2^20 bytes), time= 3.6 seconds
  no anomalies in 93 test result(s)

rng=RNG_stdin64, seed=unknown
length= 2 megabytes (2^21 bytes), time= 4.2 seconds
  Test Name                         Raw       Processed     Evaluation
  BCFN(2+2,13-7,T)                  R=  -5.2  p =1-7.7e-4   unusual          
  ...and 104 test result(s) without anomalies

rng=RNG_stdin64, seed=unknown
length= 4 megabytes (2^22 bytes), time= 4.8 seconds
  no anomalies in 120 test result(s)

rng=RNG_stdin64, seed=unknown
length= 8 megabytes (2^23 bytes), time= 5.3 seconds
  no anomalies in 133 test result(s)

rng=RNG_stdin64, seed=unknown
length= 16 megabytes (2^24 bytes), time= 6.0 seconds
  no anomalies in 147 test result(s)

rng=RNG_stdin64, seed=unknown
length= 32 megabytes (2^25 bytes), time= 6.7 seconds
  no anomalies in 162 test result(s)

rng=RNG_stdin64, seed=unknown
length= 64 megabytes (2^26 bytes), time= 7.6 seconds
  no anomalies in 177 test result(s)

rng=RNG_stdin64, seed=unknown
length= 128 megabytes (2^27 bytes), time= 8.8 seconds
  no anomalies in 193 test result(s)

rng=RNG_stdin64, seed=unknown
length= 256 megabytes (2^28 bytes), time= 10.1 seconds
  no anomalies in 210 test result(s)

rng=RNG_stdin64, seed=unknown
length= 512 megabytes (2^29 bytes), time= 12.2 seconds
  no anomalies in 226 test result(s)

rng=RNG_stdin64, seed=unknown
length= 1 gigabyte (2^30 bytes), time= 15.9 seconds
  no anomalies in 243 test result(s)

rng=RNG_stdin64, seed=unknown
length= 2 gigabytes (2^31 bytes), time= 21.7 seconds
  no anomalies in 261 test result(s)

rng=RNG_stdin64, seed=unknown
length= 4 gigabytes (2^32 bytes), time= 33.6 seconds
  no anomalies in 277 test result(s)

rng=RNG_stdin64, seed=unknown
length= 8 gigabytes (2^33 bytes), time= 57.1 seconds
  no anomalies in 294 test result(s)

rng=RNG_stdin64, seed=unknown
length= 16 gigabytes (2^34 bytes), time= 105 seconds
  no anomalies in 310 test result(s)

rng=RNG_stdin64, seed=unknown
length= 32 gigabytes (2^35 bytes), time= 197 seconds
  no anomalies in 325 test result(s)

rng=RNG_stdin64, seed=unknown
length= 64 gigabytes (2^36 bytes), time= 385 seconds
  no anomalies in 340 test result(s)

rng=RNG_stdin64, seed=unknown
length= 128 gigabytes (2^37 bytes), time= 757 seconds
  no anomalies in 355 test result(s)

rng=RNG_stdin64, seed=unknown
length= 256 gigabytes (2^38 bytes), time= 1478 seconds
  no anomalies in 369 test result(s)

rng=RNG_stdin64, seed=unknown
length= 512 gigabytes (2^39 bytes), time= 2981 seconds
  no anomalies in 383 test result(s)

rng=RNG_stdin64, seed=unknown
length= 1 terabyte (2^40 bytes), time= 5935 seconds
  no anomalies in 397 test result(s)

rng=RNG_stdin64, seed=unknown
length= 2 terabytes (2^41 bytes), time= 11690 seconds
  no anomalies in 409 test result(s)

rng=RNG_stdin64, seed=unknown
length= 4 terabytes (2^42 bytes), time= 23633 seconds
  no anomalies in 422 test result(s)

# 
# End: 2019-11-23 23:08:03
# 
# Exit value: 0
# Bytes used: 4398046584832 >= 2^42 (4.4 TB)
# 
# Test duration: 393.90878333333336 minutes
# 
