|
223 | 223 | * lifetime of a particular Java SE release. Changing the deprecation status of
|
224 | 224 | * an algorithm is <em>not</em> a specification change.
|
225 | 225 | *
|
226 |
| - * <table style="padding:0px 20px 0px 0px"> |
| 226 | + * <table class="striped"> |
227 | 227 | * <caption>Available Algorithms</caption>
|
228 | 228 | * <thead>
|
229 | 229 | * <tr>
|
|
236 | 236 | * </thead>
|
237 | 237 | * <tbody>
|
238 | 238 | * <tr>
|
239 |
| - * <td style="text-align:left">L128X1024MixRandom</td> |
| 239 | + * <th scope="row" style="text-align:left">L128X1024MixRandom</th> |
240 | 240 | * <td style="text-align:left">LXM</td>
|
241 | 241 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(1024).subtract(BigInteger.ONE).shiftLeft(128)</td>
|
242 | 242 | * <td style="text-align:right">1152</td>
|
243 | 243 | * <td style="text-align:right">1</td>
|
244 | 244 | * </tr>
|
245 | 245 | * <tr>
|
246 |
| - * <td style="text-align:left">L128X128MixRandom</td> |
| 246 | + * <th scope="row" style="text-align:left">L128X128MixRandom</th> |
247 | 247 | * <td style="text-align:left">LXM</td>
|
248 | 248 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(128).subtract(BigInteger.ONE).shiftLeft(128)</td>
|
249 | 249 | * <td style="text-align:right">256</td>
|
250 | 250 | * <td style="text-align:right">1</td>
|
251 | 251 | * </tr>
|
252 | 252 | * <tr>
|
253 |
| - * <td style="text-align:left">L128X256MixRandom</td> |
| 253 | + * <th scope="row" style="text-align:left">L128X256MixRandom</th> |
254 | 254 | * <td style="text-align:left">LXM</td>
|
255 | 255 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(256).subtract(BigInteger.ONE).shiftLeft(128)</td>
|
256 | 256 | * <td style="text-align:right">384</td>
|
257 | 257 | * <td style="text-align:right">1</td>
|
258 | 258 | * </tr>
|
259 | 259 | * <tr>
|
260 |
| - * <td style="text-align:left">L32X64MixRandom</td> |
| 260 | + * <th scope="row" style="text-align:left">L32X64MixRandom</th> |
261 | 261 | * <td style="text-align:left">LXM</td>
|
262 | 262 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(64).subtract(BigInteger.ONE).shiftLeft(32)</td>
|
263 | 263 | * <td style="text-align:right">96</td>
|
264 | 264 | * <td style="text-align:right">1</td>
|
265 | 265 | * </tr>
|
266 | 266 | * <tr>
|
267 |
| - * <td style="text-align:left">L64X1024MixRandom</td> |
| 267 | + * <th scope="row" style="text-align:left">L64X1024MixRandom</th> |
268 | 268 | * <td style="text-align:left">LXM</td>
|
269 | 269 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(1024).subtract(BigInteger.ONE).shiftLeft(64)</td>
|
270 | 270 | * <td style="text-align:right">1088</td>
|
271 | 271 | * <td style="text-align:right">16</td>
|
272 | 272 | * </tr>
|
273 | 273 | * <tr>
|
274 |
| - * <td style="text-align:left">L64X128MixRandom</td> |
| 274 | + * <th scope="row" style="text-align:left">L64X128MixRandom</th> |
275 | 275 | * <td style="text-align:left">LXM</td>
|
276 | 276 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(128).subtract(BigInteger.ONE).shiftLeft(64)</td>
|
277 | 277 | * <td style="text-align:right">192</td>
|
278 | 278 | * <td style="text-align:right">2</td>
|
279 | 279 | * </tr>
|
280 | 280 | * <tr>
|
281 |
| - * <td style="text-align:left">L64X128StarStarRandom</td> |
| 281 | + * <th scope="row" style="text-align:left">L64X128StarStarRandom</th> |
282 | 282 | * <td style="text-align:left">LXM</td>
|
283 | 283 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(128).subtract(BigInteger.ONE).shiftLeft(64)</td>
|
284 | 284 | * <td style="text-align:right">192</td>
|
285 | 285 | * <td style="text-align:right">2</td>
|
286 | 286 | * </tr>
|
287 | 287 | * <tr>
|
288 |
| - * <td style="text-align:left">L64X256MixRandom</td> |
| 288 | + * <th scope="row" style="text-align:left">L64X256MixRandom</th> |
289 | 289 | * <td style="text-align:left">LXM</td>
|
290 | 290 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(256).subtract(BigInteger.ONE).shiftLeft(64)</td>
|
291 | 291 | * <td style="text-align:right">320</td>
|
292 | 292 | * <td style="text-align:right">4</td>
|
293 | 293 | * </tr>
|
294 | 294 | * <tr>
|
295 |
| - * <td style="text-align:left">Random</td> |
| 295 | + * <th scope="row" style="text-align:left">Random</th> |
296 | 296 | * <td style="text-align:left">Legacy</td>
|
297 | 297 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(48)</td>
|
298 | 298 | * <td style="text-align:right">48</td>
|
299 | 299 | * <td style="text-align:right">0</td>
|
300 | 300 | * </tr>
|
301 | 301 | * <tr>
|
302 |
| - * <td style="text-align:left">SplittableRandom</td> |
| 302 | + * <th scope="row" style="text-align:left">SplittableRandom</th> |
303 | 303 | * <td style="text-align:left">Legacy</td>
|
304 | 304 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(64)</td>
|
305 | 305 | * <td style="text-align:right">64</td>
|
306 | 306 | * <td style="text-align:right">1</td>
|
307 | 307 | * </tr>
|
308 | 308 | * <tr>
|
309 |
| - * <td style="text-align:left">ThreadLocalRandom <sup>*</sup></td> |
| 309 | + * <th scope="row" style="text-align:left">ThreadLocalRandom <sup>*</sup></th> |
310 | 310 | * <td style="text-align:left">Legacy</td>
|
311 | 311 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(64)</td>
|
312 | 312 | * <td style="text-align:right">64</td>
|
313 | 313 | * <td style="text-align:right">1</td>
|
314 | 314 | * </tr>
|
315 | 315 | * <tr>
|
316 |
| - * <td style="text-align:left">Xoroshiro128PlusPlus</td> |
| 316 | + * <th scope="row" style="text-align:left">Xoroshiro128PlusPlus</th> |
317 | 317 | * <td style="text-align:left">Xoroshiro</td>
|
318 | 318 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(128).subtract(BigInteger.ONE)</td>
|
319 | 319 | * <td style="text-align:right">128</td>
|
320 | 320 | * <td style="text-align:right">1</td>
|
321 | 321 | * </tr>
|
322 | 322 | * <tr>
|
323 |
| - * <td style="text-align:left">Xoshiro256PlusPlus</td> |
| 323 | + * <th scope="row" style="text-align:left">Xoshiro256PlusPlus</th> |
324 | 324 | * <td style="text-align:left">Xoshiro</td>
|
325 | 325 | * <td style="text-align:left">BigInteger.ONE.shiftLeft(256).subtract(BigInteger.ONE)</td>
|
326 | 326 | * <td style="text-align:right">256</td>
|
|
466 | 466 | * 1-bit), and equidistribution property for each of the specific LXM algorithms
|
467 | 467 | * used in this package.
|
468 | 468 | *
|
469 |
| - * <table style="padding:0px 20px 0px 0px"> |
| 469 | + * <table class="striped"> |
470 | 470 | * <caption>Algorithm Properties</caption>
|
471 | 471 | * <thead>
|
472 | 472 | * <tr><th style="text-align:left">Implementation</th>
|
|
476 | 476 | * <th style="text-align:left">{@link RandomGenerator#nextLong nextLong()} values are</th></tr>
|
477 | 477 | * </thead>
|
478 | 478 | * <tbody>
|
479 |
| - * <tr><td style="text-align:left">"L32X64MixRandom"</td> |
| 479 | + * <tr><th scope="row" style="text-align:left">"L32X64MixRandom"</th> |
480 | 480 | * <td style="text-align:right">2<sup>32</sup>(2<sup>64</sup>−1)</td>
|
481 | 481 | * <td style="text-align:right">96 bits</td>
|
482 | 482 | * <td style="text-align:right">32 bits</td>
|
483 | 483 | * <td style="text-align:left"></td></tr>
|
484 |
| - * <tr><td style="text-align:left">"L64X128StarStarRandom"</td> |
| 484 | + * <tr><th scope="row" style="text-align:left">"L64X128StarStarRandom"</th> |
485 | 485 | * <td style="text-align:right">2<sup>64</sup>(2<sup>128</sup>−1)</td>
|
486 | 486 | * <td style="text-align:right">192 bits</td>
|
487 | 487 | * <td style="text-align:right">64 bits</td>
|
488 | 488 | * <td style="text-align:left">2-equidistributed and exactly equidistributed</td></tr>
|
489 |
| - * <tr><td style="text-align:left">"L64X128MixRandom"</td> |
| 489 | + * <tr><th scope="row" style="text-align:left">"L64X128MixRandom"</th> |
490 | 490 | * <td style="text-align:right">2<sup>64</sup>(2<sup>128</sup>−1)</td>
|
491 | 491 | * <td style="text-align:right">192 bits</td>
|
492 | 492 | * <td style="text-align:right">64 bits</td>
|
493 | 493 | * <td style="text-align:left">2-equidistributed and exactly equidistributed</td></tr>
|
494 |
| - * <tr><td style="text-align:left">"L64X256MixRandom"</td> |
| 494 | + * <tr><th scope="row" style="text-align:left">"L64X256MixRandom"</th> |
495 | 495 | * <td style="text-align:right">2<sup>64</sup>(2<sup>256</sup>−1)</td>
|
496 | 496 | * <td style="text-align:right">320 bits</td>
|
497 | 497 | * <td style="text-align:right">64 bits</td>
|
498 | 498 | * <td style="text-align:left">4-equidistributed and exactly equidistributed</td></tr>
|
499 |
| - * <tr><td style="text-align:left">"L64X1024MixRandom"</td> |
| 499 | + * <tr><th scope="row" style="text-align:left">"L64X1024MixRandom"</th> |
500 | 500 | * <td style="text-align:right">2<sup>64</sup>(2<sup>1024</sup>−1)</td>
|
501 | 501 | * <td style="text-align:right">1088 bits</td>
|
502 | 502 | * <td style="text-align:right">64 bits</td>
|
503 | 503 | * <td style="text-align:left">16-equidistributed and exactly equidistributed</td></tr>
|
504 |
| - * <tr><td style="text-align:left">"L128X128MixRandom"</td> |
| 504 | + * <tr><th scope="row" style="text-align:left">"L128X128MixRandom"</th> |
505 | 505 | * <td style="text-align:right">2<sup>128</sup>(2<sup>128</sup>−1)</td>
|
506 | 506 | * <td style="text-align:right">256 bits</td>
|
507 | 507 | * <td style="text-align:right">128 bits</td>
|
508 | 508 | * <td style="text-align:left">exactly equidistributed</td></tr>
|
509 |
| - * <tr><td style="text-align:left">"L128X256MixRandom"</td> |
| 509 | + * <tr><th scope="row" style="text-align:left">"L128X256MixRandom"</th> |
510 | 510 | * <td style="text-align:right">2<sup>128</sup>(2<sup>256</sup>−1)</td>
|
511 | 511 | * <td style="text-align:right">384 bits</td>
|
512 | 512 | * <td style="text-align:right">128 bits</td>
|
513 | 513 | * <td style="text-align:left">exactly equidistributed</td></tr>
|
514 |
| - * <tr><td style="text-align:left">"L128X1024MixRandom"</td> |
| 514 | + * <tr><th scope="row" style="text-align:left">"L128X1024MixRandom"</th> |
515 | 515 | * <td style="text-align:right">2<sup>128</sup>(2<sup>1024</sup>−1)</td>
|
516 | 516 | * <td style="text-align:right">1152 bits</td>
|
517 | 517 | * <td style="text-align:right">128 bits</td>
|
|
575 | 575 | * missing 1-bit is handled through special coding of the multiply-add algorithm
|
576 | 576 | * used in the LCG.)
|
577 | 577 | *
|
578 |
| - * <table style="padding:0px 20px 0px 0px"> |
| 578 | + * <table class="striped"> |
579 | 579 | * <caption>LXM Multipliers</caption>
|
580 | 580 | * <thead>
|
581 | 581 | * <tr><th style="text-align:left">Implementation</th>
|
|
585 | 585 | * <th style="text-align:left">Mixing function</th></tr>
|
586 | 586 | * </thead>
|
587 | 587 | * <tbody>
|
588 |
| - * <tr><td style="text-align:left">"L32X64MixRandom"</td> |
| 588 | + * <tr><th scope="row" style="text-align:left">"L32X64MixRandom"</th> |
589 | 589 | * <td style="text-align:right">{@code 0xadb4a92d}</td>
|
590 | 590 | * <td style="text-align:left">{@code xoroshiro64}, version 1.0</td>
|
591 | 591 | * <td style="text-align:left">{@code (26, 9, 13)}</td>
|
592 | 592 | * <td style="text-align:left">mixLea32{@code (s+x0)}</td></tr>
|
593 |
| - * <tr><td style="text-align:left">"L64X128StarStarRandom" </td> |
| 593 | + * <tr><th scope="row" style="text-align:left">"L64X128StarStarRandom" </th> |
594 | 594 | * <td style="text-align:right">{@code 0xd1342543de82ef95L}</td>
|
595 | 595 | * <td style="text-align:left">{@code xoroshiro128}, version 1.0</td>
|
596 | 596 | * <td style="text-align:left">{@code (24, 16, 37)}</td>
|
597 | 597 | * <td style="text-align:left">{@code Long.rotateLeft((s+x0)* 5, 7) * 9}</td></tr>
|
598 |
| - * <tr><td style="text-align:left">"L64X128MixRandom"</td> |
| 598 | + * <tr><th scope="row" style="text-align:left">"L64X128MixRandom"</th> |
599 | 599 | * <td style="text-align:right">{@code 0xd1342543de82ef95L}</td>
|
600 | 600 | * <td style="text-align:left">{@code xoroshiro128}, version 1.0</td>
|
601 | 601 | * <td style="text-align:left">{@code (24, 16, 37)}</td>
|
602 | 602 | * <td style="text-align:left">mixLea64{@code (s+x0)}</td></tr>
|
603 |
| - * <tr><td style="text-align:left">"L64X256MixRandom"</td> |
| 603 | + * <tr><th scope="row" style="text-align:left">"L64X256MixRandom"</th> |
604 | 604 | * <td style="text-align:right">{@code 0xd1342543de82ef95L}</td>
|
605 | 605 | * <td style="text-align:left">{@code xoshiro256}, version 1.0</td>
|
606 | 606 | * <td style="text-align:left">{@code (17, 45)}</td>
|
607 | 607 | * <td style="text-align:left">mixLea64{@code (s+x0)}</td></tr>
|
608 |
| - * <tr><td style="text-align:left">"L64X1024MixRandom"</td> |
| 608 | + * <tr><th scope="row" style="text-align:left">"L64X1024MixRandom"</th> |
609 | 609 | * <td style="text-align:right">{@code 0xd1342543de82ef95L}</td>
|
610 | 610 | * <td style="text-align:left">{@code xoroshiro1024}, version 1.0</td>
|
611 | 611 | * <td style="text-align:left">{@code (25, 27, 36)}</td>
|
612 | 612 | * <td style="text-align:left">mixLea64{@code (s+x0)}</td></tr>
|
613 |
| - * <tr><td style="text-align:left">"L128X128MixRandom"</td> |
| 613 | + * <tr><th scope="row" style="text-align:left">"L128X128MixRandom"</th> |
614 | 614 | * <td style="text-align:right">{@code 0x1d605bbb58c8abbfdL}</td>
|
615 | 615 | * <td style="text-align:left">{@code xoroshiro128}, version 1.0</td>
|
616 | 616 | * <td style="text-align:left">{@code (24, 16, 37)}</td>
|
617 | 617 | * <td style="text-align:left">mixLea64{@code (sh+x0)}</td></tr>
|
618 |
| - * <tr><td style="text-align:left">"L128X256MixRandom"</td> |
| 618 | + * <tr><th scope="row" style="text-align:left">"L128X256MixRandom"</th> |
619 | 619 | * <td style="text-align:right">{@code 0x1d605bbb58c8abbfdL}</td>
|
620 | 620 | * <td style="text-align:left">{@code xoshiro256}, version 1.0</td>
|
621 | 621 | * <td style="text-align:left">{@code (17, 45)}</td>
|
622 | 622 | * <td style="text-align:left">mixLea64{@code (sh+x0)}</td></tr>
|
623 |
| - * <tr><td style="text-align:left">"L128X1024MixRandom"</td> |
| 623 | + * <tr><th scope="row" style="text-align:left">"L128X1024MixRandom"</th> |
624 | 624 | * <td style="text-align:right">{@code 0x1d605bbb58c8abbfdL}</td>
|
625 | 625 | * <td style="text-align:left">{@code xoroshiro1024}, version 1.0</td>
|
626 | 626 | * <td style="text-align:left">{@code (25, 27, 36)}</td>
|
|
0 commit comments