Libraryless. Click here for Pure Java version (8685L/49K).
srecord noeq FindAllLSFRTriplets(int bits) { // Try triplets that are actually just pairs or even a single xorshift // (these will be indicated by a, b or c being 0) settable bool tryDegenerateTriplets = true; event testingTriplet(int[] triplet, CheckLSFRTriplet checker); event tripletFound(int[] triplet); event tripletRejected(int[] triplet, CheckLSFRTriplet checker); ItIt<L<Int>> iterator; long steps; int cycleLength() { ret (1 << bits)-1; } void init { iterator if null = outerProduct(repF(3, -> virtualCountList(tryDegenerateTriplets ? 0 : 1, bits))); } long expectedSteps() { long n = tryDegenerateTriplets ? bits : bits-1; ret n*n*n; } // return next working triplet or null if end of search int[] next() { init(); for (L<Int> t : iterator) { int[] triplet = new int[] {t.get(0), t.get(1), t.get(2)}; ++steps; CheckLSFRTriplet checker = new(bits, triplet); testingTriplet(triplet, checker); if (checker!) { tripletFound(triplet); ret triplet; } else tripletRejected(triplet, checker); } null; } L<int[]> getAll() { new L<int[]> workingTriplets; int[] triplet; while ((triplet = next()) != null) workingTriplets.add(triplet); ret workingTriplets; } }
Began life as a copy of #1035201
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
| Snippet ID: | #1035202 |
| Snippet name: | FindAllLSFRTriplets |
| Eternal ID of this version: | #1035202/17 |
| Text MD5: | 754c43bc5bd47c7e901871078353e38c |
| Transpilation MD5: | 996611d36f3942b1599d750db8e830ca |
| Author: | stefan |
| Category: | javax |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2022-04-15 03:10:09 |
| Source code size: | 1384 bytes / 50 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 572 / 754 |
| Version history: | 16 change(s) |
| Referenced in: | [show references] |