gcc, clang, vc2012 .. vc2026 でコンパイル可能です。
roc.h は rnc.h を OpenMP でマルチスレッド化したプログラムです。
gcc, clang, vc2012 .. vc2026 でコンパイル可能です。
直前の rnc.h と define.h が必要です。
以下にtestU01で検定した結果の要約を示します。
type , c, test , p-value RocRand rawhi Seed(1), B, ClosePairs mNP2,t=3 , 4.9e-4 RocRand rawhi Seed(2), B, CollisionOver,t=3 , 3.4e-4 RocRand rawhi Seed(3), B, Passed , - RocRand rawhi Seed(4), B, Passed , - RocRand rawhi Seed(5), B, Passed , - RocRand rawhi Seed(6), B, Passed , - RocRand rawlo Seed(1), B, Passed , - RocRand rawlo Seed(2), B, Passed , - RocRand rawlo Seed(3), B, Passed , - RocRand rawlo Seed(4), B, Passed , - RocRand rawlo Seed(5), B, Passed , - RocRand rawlo Seed(6), B, LongestHeadRun,r=27 , 0.9995 RocRand revhi Seed(1), B, Passed , - RocRand revhi Seed(2), B, Passed , - RocRand revhi Seed(3), B, Passed , - RocRand revhi Seed(4), B, CollisionOver,t=3 , 0.9991 RocRand revhi Seed(5), B, RandomWalk1 R(L=1000,r=0), 2.4e-4 - , B, AutoCor,d=1,r=0 , 3.5e-4 RocRand revhi Seed(6), B, Passed , - RocRand revlo Seed(1), B, Passed , - RocRand revlo Seed(2), B, CollisionOver,t=21 , 8.6e-4 RocRand revlo Seed(3), B, CouponCollector,r=20 , 6.2e-4 - , B, RandomWalk1 M(L=50,r=25) , 8.5e-4 RocRand revlo Seed(4), B, Passed , - RocRand revlo Seed(5), B, Passed , - RocRand revlo Seed(6), B, LempelZiv,r=15 , 1-9.9e-5 - , B, Run of bits,r=27 , 1.0e-3 RocRand swphi Seed(1), B, Passed , - RocRand swphi Seed(2), B, Passed , - RocRand swphi Seed(3), B, Passed , - RocRand swphi Seed(4), B, CollisionOver,t=14 , 1-6.0e-5 RocRand swphi Seed(5), B, CollisionOver,t=7 , 0.9997 - , B, SampleProd,t=16 , 2.4e-4 RocRand swphi Seed(6), B, Passed , - RocRand swplo Seed(1), B, PeriodsInStrings,r=0 , 9.5e-4 RocRand swplo Seed(2), B, Passed , - RocRand swplo Seed(3), B, Passed , - RocRand swplo Seed(4), B, Passed , - RocRand swplo Seed(5), B, Passed , - RocRand swplo Seed(6), B, Passed , -
rawhi は64ビットの上位32ビットを検定の対象としたものです。
rawlo は64ビットの下位32ビットを検定の対象としたものです。
revhi, revlo はビット毎に順序を反転したものです。
swphi, swplo はバイト毎に順序を反転したものです。
B は BigCrush を意味します。
このように、何度も検定すると何回か異常と判断されます。
RocRand te0 tf1 Seed(11) 1GB DC6-9x1Bytes-1 p=1.6e-3 unusual RocRand te0 tf1 Seed(12) 2GB [Low1/64]BCFN(2+0,13-4U) p=1-6.1e-4 unusual RocRand te0 tf1 Seed(17) 4GB [Low16/64]DC6-9x1Bytes-1 p=3.4e-3 unusual RocRand te0 tf1 Seed(20) 1GB BCFN(2+1,13-1U) p=9.2e-5 unusual RocRand te0 tf1 Seed(24) 4GB [Low1/64]Gap-16:B p=8.9e-4 unusual RocRand te0 tf1 Seed(25) 2GB [Low1/64]DC6-9x1Bytes-1 p=2.3e-3 unusual RocRand te0 tf1 Seed(40) 1GB [Low1/64]Gap-16:B p=1-6.6e-4 unusual
RocRand te0 tf2 Seed(2) 4GB [Low4/32]DC6-9x1Bytes-1 p=1-1.4e-3 unusual RocRand te0 tf2 Seed(4) 1GB [Low1/16]DC6-9x1Bytes-1 p=1-1.2e-3 unusual RocRand te0 tf2 Seed(11) 1GB [Low1/8]DC6-9x1Bytes-1 p=1.0e-3 unusual RocRand te0 tf2 Seed(11) 2GB [Low1/8]DC6-9x1Bytes-1 p=5.9e-4 unusual RocRand te0 tf2 Seed(15) 4GB [Low8/64]DC6-9x1Bytes-1 p=1-2.8e-4 unusual RocRand te0 tf2 Seed(16) 4GB [Low4/32]Gap-16:B p=1.5e-4 unusual RocRand te0 tf2 Seed(20) 2GB [Low4/32]Gap-16:A p=1-1.0e-4 unusual RocRand te0 tf2 Seed(27) 4GB [Low1/8]DC6-9x1Bytes-1 p=1-1.0e-3 unusual RocRand te0 tf2 Seed(38) 1GB [Low1/32]BCFN(2+0,13-4U) p=3.4e-4 unusual RocRand te0 tf2 Seed(40) 1GB [Low1/16]BCFN(2+2,13-4U) p=2.8e-4 unusual
RocRand te1 tf1 Seed(11) 4GB [C8]BCFN(2+0,13-2U) p=1.3e-4 unusual RocRand te1 tf1 Seed(19) 1GB [Low4/64][C8]BCFN(2+1,13-6U) p=2.7e-6 mildly suspicious RocRand te1 tf1 Seed(37) 4GB [Low1/64]NS3[6:hw:both] p=1.7e-5 unusual
RocRand te1 tf2 Seed(9) 2GB [Low4/32]NS3[3:pd:both] p=1-6.8e-5 unusual RocRand te1 tf2 Seed(9) 4GB [Low8/32]NS3[0:hw:both] p=3.4e-5 unusual RocRand te1 tf2 Seed(14) 1GB [Low4/16]NS3[5:hw:both] p=2.5e-5 unusual RocRand te1 tf2 Seed(19) 1GB [Low1/32]NS3[6:hw:both] p=2.2e-6 mildly suspicious RocRand te1 tf2 Seed(21) 2GB NS3[3:hw:both] p=3.2e-5 unusual RocRand te1 tf2 Seed(29) 4GB [Low4/64]DC7-6x2Bytes-1:indep p=1-4e-5 unusual
多くのコンパイラでコンパイル可能です。
OpenMP が必要なため、Visual C++ では 2005 からコンパイル可能です。
直前の rnb.h と define.h, bincode.h が必要です。