1 #include "isaac/isaac.h"
2 #include "isaac/isaac.c"
6 static const uint32_t STATEVEC[ISAAC_SZ<<1]={
7 0xF650E4C8, 0xE448E96D, 0x98DB2FB4, 0xF5FAD54F,
8 0x433F1AFB, 0xEDEC154A, 0xD8370487, 0x46CA4F9A,
9 0x5DE3743E, 0x88381097, 0xF1D444EB, 0x823CEDB6,
10 0x6A83E1E0, 0x4A5F6355, 0xC7442433, 0x25890E2E,
11 0x7452E319, 0x57161DF6, 0x38A824F3, 0x002ED713,
12 0x29F55449, 0x51C08D83, 0xD78CB99E, 0xA0CC74F3,
13 0x8F651659, 0xCBC8B7C2, 0xF5F71C69, 0x12AD6419,
14 0xE5792E1B, 0x860536B8, 0x09B3CE98, 0xD45D6D81,
15 0xF3B26129, 0x17E38F85, 0x29CF72CE, 0x349947B0,
16 0xC998F9FF, 0xB5E13DAE, 0x32AE2A2B, 0xF7CF814C,
17 0x8EBFA303, 0xCF22E064, 0x0B923200, 0xECA4D58A,
18 0xEF53CEC4, 0xD0F7B37D, 0x9C411A2A, 0xFFDF8A80,
19 0xB40E27BC, 0xB4D2F976, 0x44B89B08, 0xF37C71D5,
20 0x1A70E7E9, 0x0BDB9C30, 0x60DC5207, 0xB3C3F24B,
21 0xD7386806, 0x229749B5, 0x4E232CD0, 0x91DABC65,
22 0xA70E1101, 0x8B87437E, 0x5781414F, 0xCDBC62E2,
23 0x8107C9FF, 0x69D2E4AE, 0x3B18E752, 0xB143B688,
24 0x6F4E0772, 0x95138769, 0x943C3C74, 0xAFC17A97,
25 0x0FD43963, 0x6A529B0B, 0xD8C58A6A, 0xA8BCC22D,
26 0x2DB35DFE, 0xA7A2F402, 0x6CB167DB, 0x538E1F4E,
27 0x7275E277, 0x1D3B8E97, 0xECC5DC91, 0x15E3A5B9,
28 0x03696614, 0x30AB93EC, 0xAC9FE69D, 0x7BC76811,
29 0x60EDA8DA, 0x28833522, 0xD5295EBC, 0x5ADB60E7,
30 0xF7E1CDD0, 0x97166D14, 0xB67EC13A, 0x210F3925,
31 0x64AF0FEF, 0x0D028684, 0x3AEA3DEC, 0xB058BAFB,
32 0xB8B0CCFC, 0xF2B5CC05, 0xE3A662D9, 0x814BC24C,
33 0x2364A1AA, 0x37C0ED05, 0x2B36505C, 0x451E7EC8,
34 0x5D2A542F, 0xE43D0FBB, 0x91C8D925, 0x60D4D5F8,
35 0x12A0594B, 0x9E8A51DA, 0xCD49EBDB, 0x1B0DCDC1,
36 0xCD57C7F7, 0xE6344451, 0x7DED386F, 0x2F36FA86,
37 0xA6D12101, 0x33BC405D, 0xB388D96C, 0xDB6DBE96,
38 0xFE29661C, 0x13EDC0CB, 0xCB0EEE4A, 0x70CC94AE,
39 0xDE11ED34, 0x0606CF9F, 0x3A6CE389, 0x23D74F4E,
40 0xA37F63FF, 0x917BDEC2, 0xD73F72D4, 0x0E7E0E67,
41 0x3D77D9A2, 0x13ADD922, 0x8891B3DB, 0x01A9BD70,
42 0x56A001E3, 0xD51F093D, 0xCC033CE3, 0x5AD0D3B0,
43 0x34105A8C, 0x6A123F57, 0xBD2E5024, 0x7364944B,
44 0xE89B1A3B, 0x21835C4D, 0x9F39E2D9, 0xD405DED8,
45 0x294D37E5, 0xBCCAAEED, 0x35A124B5, 0x6708A2BC,
46 0xB00960BA, 0x2A98121A, 0x4D8FAE82, 0x0BB3263F,
47 0x12595A19, 0x6A107589, 0x0809E494, 0x21C171EC,
48 0x884D6825, 0x14C8009B, 0xB0B84E7B, 0x03FB88F4,
49 0x28E7CB78, 0x9388B13B, 0xDD2DC1D5, 0x848F520A,
50 0x07C28CD1, 0x68A39358, 0x72C9137D, 0x127DD430,
51 0xC613F157, 0x8C2F0D55, 0xF7D3F39F, 0x309BFB78,
52 0x8406B137, 0x46C0A6F5, 0x3718D597, 0x08607F04,
53 0x76904B6D, 0x04DB4E13, 0xCD7411A7, 0xB510CE0E,
54 0xBFC7F7CC, 0xB83F957A, 0xFDFEF62D, 0xC35E4580,
55 0x3FF1E524, 0x4112D96C, 0x02C9B944, 0xD5990DFB,
56 0xE7E26581, 0x0D9C7E7E, 0x826DFA89, 0x66F1E0AB,
57 0x30BCC764, 0xEADEBEAC, 0xED35E5EE, 0x0C571A7D,
58 0xE4F3A26A, 0xF7F58F7B, 0xADF6BC23, 0x5D023E65,
59 0x1ED3FF4E, 0xEC46B0B6, 0xD2A93B51, 0xE75B41C9,
60 0x7E315AEB, 0x61119A5A, 0x53245B79, 0x33F6D7B1,
61 0xCAE8DEBA, 0x50FC8194, 0xAFA92A6D, 0xC87C8006,
62 0x4188BFCD, 0x8BACE62E, 0x78FFA568, 0x5597EC0F,
63 0xB4415F7D, 0x08294766, 0xAD567643, 0x09C36F90,
64 0x3DDE9F39, 0x4A0A283C, 0x18080C8E, 0x080C79EC,
65 0x79AE4C10, 0xCB9E1563, 0x7CDD662F, 0x62D31911,
66 0xA4CA0CF1, 0x5CF824CD, 0x3B708F99, 0x1E16614C,
67 0xB6B9D766, 0x5DE87ABB, 0x7229EA81, 0xD5B2D750,
68 0x56E6CD21, 0xFE1E42D5, 0x96DA2655, 0xC2B9AA36,
69 0xB8F6FD4A, 0x6A158D10, 0x01913FD3, 0xAF7D1FB8,
70 0x0B5E435F, 0x90C10757, 0x6554ABDA, 0x7A68710F,
71 0x82AC484F, 0xD7E1C7BE, 0x95C85EAA, 0x94A302F4,
72 0x4D3CFBDA, 0x786B2908, 0x1010B275, 0x82D53D12,
73 0x21E2A51C, 0x3D1E9150, 0xB059261D, 0xD0638E1A,
74 0x31860F05, 0x81F2864D, 0xFF4CFC35, 0x0451516D,
75 0xBD086F26, 0xBC5654C1, 0x65DFA427, 0xA82427F5,
76 0x582E3014, 0xB8D2486D, 0xC79A1749, 0x9A1D7745,
77 0x8766BB54, 0x1E04A7F7, 0x3D3DFF8A, 0xD5EC6BF4,
78 0xDBEF7D9F, 0x36EC0EA3, 0x1FEB2E4F, 0x15CFCC5C,
79 0xD8C423FB, 0xD0EF3CC9, 0xEB244925, 0xBA5590C8,
80 0xA5F48AC4, 0x33C5321C, 0x613B67B2, 0x479C3A22,
81 0xE21339CC, 0x10D210AA, 0x931DD7E2, 0xEF05EE06,
82 0xB82F2703, 0xA385CB2C, 0x5D67133C, 0x877EB7B4,
83 0x1E3437F7, 0x5AFB43AE, 0x53C078F3, 0x94D90481,
84 0x1D964589, 0x08063A85, 0xE1322228, 0x1956B1E5,
85 0x31860F13, 0x2E7B022F, 0x21182CA3, 0x96F703AC,
86 0x46819E2E, 0x0D28FE52, 0x3724D4DC, 0xA0EABE6B,
87 0xC66699FD, 0xC6112FDD, 0x19C1E69C, 0x04D3658A,
88 0x4B55DD99, 0x31907D62, 0xF854B522, 0x4D678F26,
89 0x22AE0582, 0xEAFED133, 0xE4A51D21, 0x84BD6DD6,
90 0xC1A51375, 0x3F28EE63, 0xFB737B1A, 0x70A1660E,
91 0x8A8DFAA3, 0x1BE79937, 0xF7476978, 0x513C1764,
92 0x531AC6BF, 0x12C06908, 0x001CDB95, 0x1A4B6A53,
93 0xD067FCE5, 0x12B2CFB6, 0x9DDB477F, 0x740E0066,
94 0x39DDF25A, 0xCC8BFA2D, 0xF1B20EAF, 0x64F2632C,
95 0x9783CDEE, 0x63BFD4D8, 0x0084CFE5, 0x75F4E9E2,
96 0x19B48FD0, 0x6C48DDD8, 0x7A36AF93, 0x71865C4C,
97 0x9CE0199D, 0x867027D7, 0x2CB7B77F, 0x84EF01DA,
98 0x72F5972F, 0x040F7074, 0xDF9AFA29, 0xC921F94E,
99 0x75C08A36, 0x18C1EF9A, 0xD649A428, 0xC5B71937,
100 0x8A30738A, 0xD97CD348, 0x858129A6, 0x239E3B0A,
101 0xBBB8ABC4, 0x80FAC4C2, 0xECFCF20B, 0xD9D711F9,
102 0xE2A4EF71, 0xB5FE87C0, 0xBE8B06B2, 0xAAFEF5A7,
103 0x9C15DB3B, 0x0AEB8165, 0x4389A84A, 0x253B1D7A,
104 0x19047C79, 0x7CDC78A2, 0xD20ADF03, 0x56F55A71,
105 0x3E730FA8, 0xFD8650D8, 0x959E234E, 0xB7546681,
106 0xDAD1B22A, 0x142A6E85, 0x8EF4BCE6, 0x68235B9D,
107 0x85A13F85, 0x74096AE7, 0xA949BEA2, 0x29322D0D,
108 0xD5683858, 0x82846526, 0x403DAE08, 0x6DD1943A,
109 0xE1279BFF, 0x9E7E4F04, 0x1C3A4524, 0x484525E4,
110 0x81D4CC5F, 0xE24124C0, 0x037464C0, 0xBF1BD691,
111 0x26CEB003, 0x275EAD3A, 0xC5BDE908, 0x26414FF3,
112 0xA30519AD, 0xD7B43ABE, 0x2CE5D3D5, 0x88412761,
113 0x97CA2070, 0xE5FBB9C7, 0x276DF0B4, 0x308F751F,
114 0x37A97DF6, 0xC9CD808C, 0xFE4CB380, 0x3D469303,
115 0xAEE19096, 0xC0D5D42A, 0x4E823AD3, 0xF5F9CC3B,
116 0x4286619C, 0x9CA45E1C, 0x66C97340, 0x891AEC49,
117 0x45BAE606, 0xC798F047, 0x52649D6C, 0xCE86FDFC,
118 0x80C6E402, 0xD6EC2F2B, 0x27C82282, 0x1FE26CE0,
119 0x92F57EA7, 0xDE462F4D, 0x07497CAE, 0x5A48755C,
120 0x721502DD, 0x6CBE7935, 0x836D8003, 0x9EAD7F70,
121 0x9AB3A42F, 0x4C8652D6, 0x32E39273, 0xE8FA3860,
122 0x1DA4F25A, 0x0CD6EF81, 0x02503F7D, 0x8854A0A1,
123 0x9A30C4E8, 0x88157153, 0x05EFE294, 0x57C4C925,
124 0x2887D96F, 0xC1A71E3C, 0xE9F84163, 0x2D0985DE,
125 0xD21E796C, 0x6FB5CE56, 0x02614ABF, 0xC3C7BE2C,
126 0xB54FED6F, 0xA617A083, 0xC3142D8F, 0x6079E4CE,
127 0xCEFFC147, 0x1D0CB81B, 0xDC153E5F, 0xE36EF5BB,
128 0xD531161A, 0x165B1015, 0x7AA114ED, 0x3F7579B3,
129 0xF7F395F1, 0xBC6172C7, 0xA86F875E, 0x0E6C51B3,
130 0xCDFEC2AF, 0x73C0E762, 0x824C2009, 0xC5A87748,
131 0x94D40125, 0x8ABA3FFB, 0xD32BE060, 0x8C17EFF0,
132 0x21E2547E, 0x07CFFAD9, 0x05340E15, 0xF3310C92,
133 0x9D8D1908, 0x86BA527F, 0xF943F672, 0xEF73FBF0,
134 0x46D95CA5, 0xC54CD95B, 0x9D855E89, 0x4BB5AF29
137 int main(int _argc,const char *_argv[]){
141 /*This is how many tests you plan to run.*/
143 isaac_init(&isaac,NULL,0);
144 for(j=0;j<ISAAC_SZ;j++)isaac_next_uint32(&isaac);
148 for(j=0;j<ISAAC_SZ;j++){
149 nmatches+=isaac_next_uint32(&isaac)==STATEVEC[(i+1)*ISAAC_SZ-j-1];
151 ok1(nmatches==ISAAC_SZ);
153 /*TODO: We should test the random float/double routines, but they are not
154 guaranteed to return the same values on all platforms, because the number
155 of bits in the mantissa may be different.
156 Perhaps some simple statistical tests would suffice.*/
157 return exit_status();