1print "Gathering array...\n" 2 3s = seed 4 5sum = 0 6 7for (i = 0; i < 100; ++i) { 8 a[i] = rand() 9 sum += a[i] 10 b[i] = irand(sum) 11} 12 13print "Testing implementation...\n" 14 15if (maxrand() >= 2^64 - 1) { 16 17 seed = 54.86785590782347282592869373784717814475564948862907968939159536927733440\ 18 901359008180088183692646452982444316148757934570312500000 19 20 ibase = G 21 obase = G 22 23 for (i = 0; i < 64; ++i) { 24 rand() 25 } 26 27 7B47F409 28 BA1D3330 29 83D2F293 30 BFA4784B 31 CBED606E 32 BFC6A3AD 33 812FFF6D 34 E61F305A 35 F9384B90 36 32DB86FE 37 1DC035F9 38 ED786826 39 3822441D 40 2BA113D7 41 1C5B818B 42 A233956A 43 84DA65E3 44 CED67292 45 B2C0FE06 46 91817130 47 48 55FE8917 49 47E92091 50 486AF299 51 B1E882BB 52 C261E845 53 1A9B90F6 54 7964E884 55 5F36D7A4 56 1EE2052D 57 8519F5D5 58 293D4E4F 59 6D8F99FC 60 C3421509 61 A06CD7C6 62 E43064D3 63 E20F9BF0 64 401B50B7 65 8EF1FF3E 66 E357E2B2 67 A4AEEE37 68 69 2AD4426A 70 9D11BE94 71 7290C556 72 6E6F3787 73 050C2EE3 74 4FD73703 75 C6FF478B 76 4B1CA1E1 77 1654EA91 78 CD08B2F2 79 F7FF3DA8 80 78B1B8DA 81 A100602C 82 9588585F 83 DA028873 84 66B4F376 85 0E6B4B9A 86 48167094 87 0D58CDA0 88 8F7238BE 89 90 F79983F3 91 07E5D324 92 AD78DF52 93 1532BA74 94 1E4899E2 95 6C75DF64 96 171DDC36 97 F2D8D74A 98 24E6D907 99 4780FD32 100 9ADF408C 101 A25544CF 102 EFC6A738 103 1AA23A54 104 C5A13EBB 105 F739EDC9 106 C3A015FA 107 3D5E1511 108 AFC4D7FB 109 3F413B5E 110 111 4660CB73 112 88FC773F 113 D6BED59C 114 63B3B54A 115 D67D3DDE 116 23394F8B 117 13384B44 118 DD8B3ABC 119 FF59A21E 120 3BB16D7E 121 6E01CB68 122 EC34790E 123 B26C42AD 124 D723C830 125 DFD10FCA 126 7E362AA1 127 826FF323 128 CB8F63B5 129 9B3227E5 130 9A61E339 131} 132else { 133 134 ibase = G 135 obase = G 136 137 86B1DA1D72062B68 138 1304AA46C9853D39 139 A3670E9E0DD50358 140 F9090E529A7DAE00 141 C85B9FD837996F2C 142 606121F8E3919196 143 7CE1C7FF478354BA 144 CBC4AC70E541310E 145 74BE71999EC37F2C 146 B81F9C99A934F1A7 147 120E9901A900C97F 148 0F983BAD4B19F493 149 5934619363660D96 150 D5A7FE2717A2014E 151 6E437241C9E6676E 152 6A75C9DD6329CD29 153 2D9E477683673437 154 51FB0CF3D4405437 155 217BB90392D08B20 156 47C528A018B07A82 157 158 1B4E474C418C835E 159 BDB2BDA74A119ED6 160 C6DB79D0B9E43493 161 C3CF4834E94A41D1 162 AB8312FC7877C7DC 163 094B108133E8B5EC 164 37CA97AC830113BD 165 EF02D7347F9192BF 166 959517DD9896C53A 167 7A80EB7629EFE9F9 168 AE53C23F2B1CF57C 169 CA605CD189F6D5CD 170 921C2704886A9622 171 B68C9FBF826AF7AA 172 73F8C733124772C3 173 6B57F7E459EFBCDF 174 9DE7696DDB6B8E18 175 02CA67560DC26877 176 A24E353080777DEC 177 4D600156763FD65C 178 179 5CDF9C7E26DD2C38 180 6A32443BBBB16774 181 3D8415FFECFB8B7F 182 3090ED9C47@6 183 6DBF241361C3E652 184 2CA9EF5A2AD971FC 185 44FBE937A1CF0FFC 186 DB17CF0577CB7853 187 AA3747D98D31B24C 188 5D9A104C5D7F43F7 189 BAE65E3E293B2C7B 190 16A396F0DB4EF984 191 6DD2BACDC4445A05 192 7B7A13D1858E5CA8 193 F73722BCAA52447C 194 31A2C7BBE77CBA00 195 7FC8AF9003BA1ACE 196 5703F11DD3F235EF 197 FA1952267EF836C7 198 BBFA558C9E2D51E2 199 200 3A29661D8145AF36 201 608DEA6358DABD7C 202 9E34E9E53431B447 203 325A05E35EA524EB 204 63A87CCF0C80ABB1 205 8EA183287A46F292 206 E2AA5F119CBF2A08 207 2F3BEB0DE8B730C8 208 4B8006A928CF8F5B 209 57B8BA85069C201C 210 3422D962DDF59474 211 FD744940BA7366A1 212 23D24B06B5DA4F6F 213 AA187C608319D1DC 214 DC60CA6FEA738B8A 215 C9FC61DF96A769FE 216 82E2457708658A20 217 2BECEC9B3E7D93EC 218 1340DAEC04588952 219 F533446AD5C50B1D 220 221 31FD1C7F434A62CE 222 D16DAEDD1F281A39 223 6B5D9648931D7057 224 62FEE3392DBB06D5 225 0358BC87B00DF25A 226 F3C882D22946175D 227 65BA8F11B4516EFE 228 2DA5A96E626DA4FE 229 DCC669F4CD6121F0 230 7A47FAC054319CA2 231 9661CFEE277284C8 232 01E483A14F4EB23A 233 ADDC115507390607 234 5AB47C343BD3B0BD 235 4882FB3A3957B11F 236 615B7C9C3626DD44 237 F79CF49562969219 238 88C32C194EA78D27 239 DA8AFFE1353FF352 240 A7A3C331A64CB146 241 242 ibase = A 243 244 seed = 54.0950779151573258314404657465246373249101452529430389404296875000 245 246 ibase = G 247 248 for (i = 0; i < 64; ++i) { 249 rand() 250 } 251} 252 253print "Testing array...\n" 254 255ibase = A 256 257seed = s 258 259sum = 0 260 261for (i = 0; i < 100; ++i) { 262 a[i] == rand() 263 sum += a[i] 264 b[i] == irand(sum) 265} 266 267print "Exercising irand()...\n" 268 269scale = 256 270 271pow = (maxrand() + 1) ^ 4 272s =!2^256 + 2^128 + (irand(pow) / pow) 273seed = s 274seed < s 275 276s = -459.125 277seed = s 278seed == -s 279 280irand(0) 281irand(1) 282seed == -s 283irand(maxrand() + 1) <= maxrand() 284 285for (i = 0; i < 200; ++i) { 286 irand(20) < 20 287} 288 289seed = 738 290seed != 738 291 292s = 2398@0625 293seed = s 294seed != s 295 296pow = (maxrand() + 1) ^ 4 297s = 2^2560 + 2^128 + (irand(pow) / pow) 298seed = s 299seed < s 300 301b = 0 302m = maxrand() + 1 303n = m + 1 304 305for (i = 0; !b && i < 100; ++i) { 306 c = irand(n) 307 b = (c != 0 && c != m) 308 if (c >= n) print "irand() result is too large.\n" 309} 310 311b 312 313sqrt(-1) 314