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: | 227 / 402 |
Version history: | 19 change(s) |
Referenced in: | [show references] |