Libraryless. Click here for Pure Java version (9142L/52K).
1 | srecord noeq MakeLSFRTripletsTable(int maxBits) {
|
2 | event tripletFound(int bits, int[] triplet); |
3 | settable bool verbose = true; |
4 | |
5 | new TreeMap<Int, int[]> out; |
6 | |
7 | // print table & copy to clipboard |
8 | run {
|
9 | print(copyToClipboard(toJava())); |
10 | } |
11 | |
12 | TreeMap<Int, int[]> getMap() {
|
13 | for ping (int bits = 1; bits <= maxBits; bits++) {
|
14 | reMutable bits; |
15 | var searcher = FindAllLSFRTriplets(bits); |
16 | if (verbose) {
|
17 | searcher.onTestingTriplet((triplet, checker) -> |
18 | print("Testing: " + toList(triplet) + " for " + nBits(bits)
|
19 | + " (step " + n2(searcher.steps) + " of " + n2(searcher.expectedSteps()) + ")") |
20 | ); |
21 | searcher.onTripletRejected((triplet, checker) -> |
22 | print("Triplet rejected after " + n2(checker.steps, "value"))
|
23 | ); |
24 | } |
25 | var triplet = searcher.next(); |
26 | printVars(bits := searcher.bits, triplet := toList(triplet), steps := searcher.steps, cycleLength := searcher.cycleLength()); |
27 | out.put(bits, triplet); |
28 | if (verbose) |
29 | print(triplet == null |
30 | ? "No triplet found for " + nBits(bits) |
31 | : "Triplet found for " + nBits(bits) + ": "+ toList(triplet)); |
32 | if (triplet != null) |
33 | tripletFound(bits, triplet); |
34 | } |
35 | ret out; |
36 | } |
37 | |
38 | S toJava() {
|
39 | var map = getMap(); |
40 | int n = lastKey(map); |
41 | new LS out; |
42 | for (int bits = 1; bits <= n; bits++) {
|
43 | var triplet = map.get(bits); |
44 | out.add(triplet == null ? "null" : "{ " + joinWithComma(toList(triplet)) + " }");
|
45 | } |
46 | ret indentx(4, join(",\n", out));
|
47 | } |
48 | } |
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
| Snippet ID: | #1035203 |
| Snippet name: | MakeLSFRTripletsTable |
| Eternal ID of this version: | #1035203/20 |
| Text MD5: | 33fea34e6748c1fc687b559319c0332d |
| Transpilation MD5: | ccdee0badf64c1ccc2ab2c8351e1112b |
| Author: | stefan |
| Category: | javax / lsfr |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2022-04-15 03:28:40 |
| Source code size: | 1617 bytes / 48 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 577 / 776 |
| Version history: | 19 change(s) |
| Referenced in: | [show references] |