datafarming 1.4.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,318 +1,127 @@
1
- #!/usr/bin/env ruby -w
1
+ # frozen_string_literal: true
2
2
 
3
- module FDE
3
+ module FBD
4
4
  TWO_PI = 2.0 * Math::PI
5
5
 
6
- DesignSet = Struct.new(:nyq, :freqs)
6
+ DesignSet = Struct.new(:nyq, :freqs, keyword_init: true)
7
7
 
8
8
  DESIGN_SETS = {
9
9
  2 => DesignSet.new(
10
- nyq = 13, freqs = [
11
- [1, 5],
12
- [2, 3],
13
- [4, 6]
10
+ nyq: 9, freqs: [
11
+ [1, 2]
14
12
  ]
15
13
  ),
16
14
  3 => DesignSet.new(
17
- nyq = 27, freqs = [
18
- [1, 5, 8],
19
- [2, 5, 13],
20
- [2, 10, 11],
21
- [4, 11, 13],
22
- [8, 10, 13]
15
+ nyq: 19, freqs: [
16
+ [1, 7, 8]
23
17
  ]
24
18
  ),
25
19
  4 => DesignSet.new(
26
- nyq = 46, freqs = [
27
- [1, 4, 10, 17],
28
- [1, 6, 16, 19],
29
- [2, 3, 11, 18],
30
- [2, 9, 10, 15],
31
- [3, 5, 12, 16],
32
- [4, 5, 7, 20],
33
- [6, 8, 9, 13],
34
- [7, 18, 19, 22],
35
- [8, 11, 20, 21],
36
- [12, 14, 15, 21],
37
- [13, 14, 17, 22]
20
+ nyq: 37, freqs: [
21
+ [1, 2, 8, 16]
38
22
  ]
39
23
  ),
40
24
  5 => DesignSet.new(
41
- nyq = 69, freqs = [
42
- [1, 4, 13, 19, 29],
43
- [1, 10, 14, 17, 22],
44
- [2, 5, 11, 25, 26],
45
- [2, 8, 11, 26, 31],
46
- [2, 10, 13, 31, 32],
47
- [2, 11, 14, 31, 32],
48
- [2, 20, 25, 28, 34],
49
- [4, 5, 7, 20, 26],
50
- [4, 7, 16, 17, 22],
51
- [4, 10, 17, 19, 22],
52
- [5, 7, 11, 26, 34],
53
- [8, 10, 14, 17, 29],
54
- [8, 14, 25, 32, 34],
55
- [8, 20, 25, 31, 34],
56
- [11, 16, 20, 28, 34],
57
- [13, 17, 29, 31, 32]
25
+ nyq: 59, freqs: [
26
+ [1, 2, 8, 13, 21],
27
+ [1, 4, 10, 14, 26]
58
28
  ]
59
29
  ),
60
30
  6 => DesignSet.new(
61
- nyq = 103, freqs = [
62
- [1, 5, 22, 35, 42, 50],
63
- [1, 7, 10, 25, 29, 41],
64
- [1, 11, 18, 24, 27, 32],
65
- [1, 11, 28, 31, 35, 49],
66
- [1, 14, 21, 25, 30, 33],
67
- [1, 28, 33, 40, 44, 50],
68
- [2, 22, 36, 39, 48, 49],
69
- [3, 4, 13, 28, 40, 42],
70
- [3, 4, 17, 19, 29, 47],
71
- [3, 16, 20, 21, 28, 30],
72
- [4, 5, 7, 25, 31, 44],
73
- [4, 9, 10, 21, 37, 44],
74
- [5, 6, 14, 37, 41, 44],
75
- [5, 13, 17, 32, 46, 48],
76
- [5, 31, 37, 39, 48, 51],
77
- [6, 8, 9, 34, 38, 45],
78
- [6, 32, 40, 42, 43, 47],
79
- [7, 15, 35, 39, 41, 51],
80
- [8, 10, 14, 15, 41, 50],
81
- [8, 11, 12, 18, 43, 45],
82
- [8, 15, 18, 20, 29, 42],
83
- [9, 12, 16, 38, 46, 51],
84
- [9, 12, 17, 19, 23, 39],
85
- [10, 12, 15, 21, 28, 29],
86
- [11, 21, 25, 34, 49, 51],
87
- [11, 27, 35, 36, 48, 50],
88
- [12, 13, 16, 18, 27, 35],
89
- [13, 23, 31, 32, 38, 43],
90
- [14, 20, 22, 25, 35, 51],
91
- [14, 27, 34, 36, 46, 51],
92
- [16, 23, 24, 43, 45, 49],
93
- [20, 24, 30, 42, 45, 47]
31
+ nyq: 79, freqs: [
32
+ [1, 4, 13, 17, 23, 24]
94
33
  ]
95
34
  ),
96
35
  7 => DesignSet.new(
97
- nyq = 130, freqs = [
98
- [1, 4, 19, 31, 44, 53, 60],
99
- [1, 7, 18, 22, 27, 57, 60],
100
- [1, 9, 14, 21, 40, 46, 57],
101
- [1, 10, 16, 29, 34, 37, 41],
102
- [2, 3, 12, 29, 37, 50, 57],
103
- [2, 17, 22, 23, 30, 33, 59],
104
- [3, 7, 19, 28, 30, 43, 48],
105
- [3, 8, 10, 27, 41, 42, 63],
106
- [3, 21, 41, 49, 50, 54, 64],
107
- [4, 7, 9, 24, 30, 49, 59],
108
- [6, 9, 19, 20, 36, 41, 43],
109
- [6, 31, 40, 47, 51, 61, 64],
110
- [7, 9, 17, 20, 32, 62, 63],
111
- [8, 33, 47, 48, 51, 53, 60],
112
- [10, 11, 18, 23, 37, 53, 62],
113
- [10, 11, 36, 44, 49, 51, 63],
114
- [11, 14, 23, 24, 29, 31, 50],
115
- [11, 16, 17, 20, 46, 59, 61],
116
- [12, 17, 21, 27, 40, 47, 58],
117
- [19, 29, 30, 33, 54, 56, 61],
118
- [20, 33, 37, 42, 43, 58, 61],
119
- [21, 27, 34, 51, 56, 59, 60],
120
- [23, 28, 38, 47, 49, 50, 63],
121
- [31, 32, 38, 40, 43, 53, 57]
36
+ nyq: 119, freqs: [
37
+ [1, 2, 11, 18, 41, 46, 52]
122
38
  ]
123
39
  ),
124
40
  8 => DesignSet.new(
125
- nyq = 168, freqs = [
126
- [1, 9, 13, 16, 40, 46, 51, 74],
127
- [2, 8, 11, 25, 26, 57, 64, 69],
128
- [2, 8, 15, 26, 27, 59, 64, 73],
129
- [3, 19, 32, 34, 39, 62, 79, 80],
130
- [3, 22, 23, 32, 37, 39, 50, 80],
131
- [5, 32, 34, 45, 62, 65, 80, 81],
132
- [8, 15, 17, 27, 53, 58, 64, 82],
133
- [8, 31, 57, 58, 64, 67, 69, 82],
134
- [9, 10, 16, 38, 40, 43, 51, 55],
135
- [10, 16, 29, 33, 38, 40, 41, 75],
136
- [16, 33, 40, 46, 71, 74, 75, 83],
137
- [22, 32, 45, 47, 50, 61, 80, 81]
41
+ nyq: 163, freqs: [
42
+ [1, 2, 10, 16, 35, 57, 62, 78]
138
43
  ]
139
44
  ),
140
45
  9 => DesignSet.new(
141
- nyq = 209, freqs = [
142
- [1, 5, 19, 22, 31, 56, 64, 71, 99],
143
- [1, 22, 29, 38, 42, 48, 53, 56, 88],
144
- [2, 19, 54, 61, 66, 72, 88, 97, 98],
145
- [3, 13, 41, 62, 76, 77, 81, 99, 101],
146
- [5, 25, 54, 63, 71, 77, 95, 98, 99],
147
- [6, 7, 11, 26, 47, 55, 57, 82, 85],
148
- [7, 20, 22, 26, 38, 43, 75, 99, 100],
149
- [8, 30, 33, 39, 40, 44, 57, 59, 94],
150
- [9, 11, 12, 38, 45, 51, 55, 70, 86],
151
- [9, 11, 14, 40, 44, 52, 59, 76, 86],
152
- [11, 17, 43, 44, 47, 85, 93, 95, 100],
153
- [11, 19, 21, 24, 28, 44, 78, 90, 104],
154
- [11, 28, 32, 55, 69, 89, 95, 102, 104],
155
- [12, 14, 22, 39, 45, 52, 94, 95, 99],
156
- [14, 16, 51, 52, 57, 60, 70, 77, 99],
157
- [16, 21, 60, 66, 78, 80, 88, 91, 95],
158
- [17, 19, 20, 33, 44, 65, 75, 87, 93],
159
- [18, 22, 24, 37, 69, 76, 90, 99, 102],
160
- [18, 22, 28, 37, 57, 80, 88, 91, 104],
161
- [19, 27, 32, 33, 42, 49, 53, 77, 89],
162
- [23, 34, 35, 38, 40, 59, 66, 79, 88],
163
- [27, 49, 55, 57, 66, 69, 73, 92, 102],
164
- [31, 38, 54, 55, 64, 66, 84, 98, 103],
165
- [33, 46, 51, 68, 70, 76, 77, 80, 91],
166
- [36, 42, 53, 66, 73, 74, 76, 88, 92]
46
+ nyq: 181, freqs: [
47
+ [1, 39, 43, 48, 49, 62, 65, 73, 80]
167
48
  ]
168
49
  ),
169
50
  10 => DesignSet.new(
170
- nyq = 268, freqs = [
171
- [1, 5, 13, 24, 51, 54, 71, 86, 93, 114],
172
- [1, 5, 18, 21, 32, 62, 70, 77, 105, 117],
173
- [1, 5, 23, 34, 42, 49, 74, 87, 101, 104],
174
- [1, 14, 21, 50, 60, 66, 69, 77, 103, 107],
175
- [1, 35, 51, 90, 93, 97, 107, 112, 118, 130],
176
- [1, 49, 62, 71, 87, 107, 114, 117, 122, 128],
177
- [2, 3, 11, 23, 53, 68, 86, 105, 115, 122],
178
- [2, 5, 13, 25, 34, 65, 71, 87, 106, 120],
179
- [2, 13, 22, 51, 56, 59, 87, 101, 119, 126],
180
- [2, 15, 22, 33, 47, 56, 75, 83, 121, 126],
181
- [2, 19, 29, 68, 81, 86, 111, 122, 123, 131],
182
- [2, 34, 47, 63, 69, 106, 109, 120, 121, 129],
183
- [3, 7, 15, 35, 44, 46, 69, 102, 121, 126],
184
- [3, 7, 53, 55, 74, 82, 83, 98, 116, 121],
185
- [3, 10, 11, 15, 39, 55, 72, 74, 106, 115],
186
- [3, 15, 37, 47, 54, 58, 63, 82, 83, 96],
187
- [3, 37, 41, 42, 53, 61, 63, 70, 88, 118],
188
- [4, 9, 58, 79, 85, 86, 109, 111, 123, 126],
189
- [4, 11, 23, 25, 49, 55, 58, 86, 125, 126],
190
- [5, 11, 25, 42, 49, 82, 90, 105, 108, 117],
191
- [5, 16, 23, 25, 31, 58, 98, 101, 102, 115],
192
- [6, 7, 15, 39, 50, 55, 73, 75, 92, 102],
193
- [6, 7, 35, 39, 66, 89, 91, 100, 110, 115],
194
- [6, 9, 10, 33, 47, 64, 69, 77, 98, 109],
195
- [6, 10, 25, 57, 64, 65, 87, 98, 101, 125],
196
- [6, 19, 43, 45, 66, 95, 99, 100, 110, 127],
197
- [6, 50, 59, 61, 79, 92, 95, 102, 119, 127],
198
- [7, 18, 26, 30, 35, 73, 75, 76, 97, 107],
199
- [7, 20, 22, 23, 55, 89, 94, 106, 115, 125],
200
- [8, 17, 18, 31, 38, 85, 89, 91, 113, 118],
201
- [8, 18, 21, 38, 43, 45, 49, 103, 117, 118]
51
+ nyq: 251, freqs: [
52
+ [1, 2, 8, 13, 37, 54, 67, 86, 94, 114],
53
+ [1, 2, 9, 14, 35, 44, 73, 92, 98, 112],
54
+ [1, 2, 12, 19, 27, 46, 62, 68, 98, 121],
55
+ [1, 7, 8, 12, 37, 49, 59, 77, 80, 112]
202
56
  ]
203
57
  ),
204
58
  11 => DesignSet.new(
205
- nyq = 335, freqs = [
206
- [1, 4, 14, 26, 33, 50, 71, 94, 110, 152, 163]
59
+ nyq: 317, freqs: [
60
+ [1, 2, 7, 42, 59, 78, 88, 101, 112, 133, 151],
61
+ [1, 2, 11, 41, 57, 89, 104, 118, 124, 142, 149]
207
62
  ]
208
63
  ),
209
64
  12 => DesignSet.new(
210
- nyq = 440, freqs = [
211
- [1, 4, 14, 21, 72, 84, 113, 137, 146, 173, 192, 203]
65
+ nyq: 359, freqs: [
66
+ [1, 2, 17, 22, 28, 60, 68, 96, 109, 144, 151, 161],
67
+ [1, 2, 24, 51, 59, 66, 79, 95, 113, 125, 158, 164]
212
68
  ]
213
69
  ),
214
70
  13 => DesignSet.new(
215
- nyq = 579, freqs = [
216
- [1, 4, 10, 17, 29, 52, 95, 117, 132, 172, 196, 243, 269]
71
+ nyq: 499, freqs: [
72
+ [1, 2, 7, 36, 51, 63, 82, 102, 142, 149, 159, 170, 218]
217
73
  ]
218
74
  ),
219
75
  14 => DesignSet.new(
220
- nyq = 684, freqs = [
221
- [1, 4, 10, 17, 29, 52, 83, 107, 150, 172, 221, 236, 268, 306]
76
+ nyq: 607, freqs: [
77
+ [1, 2, 7, 14, 46, 75, 111, 146, 166, 197, 216, 254, 272, 295]
222
78
  ]
223
79
  ),
224
80
  15 => DesignSet.new(
225
- nyq = 811, freqs = [
226
- [1, 4, 10, 17, 29, 52, 78, 93, 143, 165, 202, 245, 277, 343, 383]
81
+ nyq: 701, freqs: [
82
+ [1, 2, 7, 14, 25, 68, 106, 147, 184, 194, 230, 247, 281, 303, 336]
227
83
  ]
228
84
  ),
229
85
  16 => DesignSet.new(
230
- nyq = 811, freqs = [
231
- [1, 4, 10, 17, 29, 52, 88, 131, 155, 196, 246, 312, 359, 408, 423, 445]
86
+ nyq: 877, freqs: [
87
+ [1, 2, 7, 14, 24, 43, 61, 133, 176, 229, 253, 287, 322, 342, 374, 425]
232
88
  ]
233
89
  ),
234
90
  17 => DesignSet.new(
235
- nyq = 1089, freqs = [
236
- [1, 4, 10, 17, 29, 52, 67, 116, 181, 224, 264, 318, 359, 403, 450, 481, 526]
91
+ nyq: 1007, freqs: [
92
+ [1, 2, 7, 14, 24, 43, 54, 86, 144, 168, 203, 249, 324, 351, 388, 442, 462]
237
93
  ]
238
94
  ),
239
95
  18 => DesignSet.new(
240
- nyq = 1283, freqs = [
241
- [1, 4, 10, 17, 29, 52, 67, 89, 165, 210, 265, 335, 400, 436, 480, 523, 563, 587]
96
+ nyq: 1279, freqs: [
97
+ [37, 38, 40, 44, 49, 57, 67, 83, 216, 241, 274, 386, 427, 449, 496, 517, 568, 632]
242
98
  ]
243
99
  ),
244
100
  19 => DesignSet.new(
245
- nyq = 1458, freqs = [
246
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 176, 202, 299, 339, 413, 437, 468, 513, 595, 659]
101
+ nyq: 1433, freqs: [
102
+ [37, 38, 40, 44, 49, 57, 67, 83, 108, 220, 251, 323, 389, 413, 449, 568, 590, 622, 637],
103
+ [37, 38, 40, 44, 49, 57, 67, 83, 108, 239, 272, 330, 351, 382, 481, 536, 596, 649, 699]
247
104
  ]
248
105
  ),
249
106
  20 => DesignSet.new(
250
- nyq = 1673, freqs = [
251
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 291, 335, 411, 437, 511, 535, 594, 648, 688, 749]
107
+ nyq: 1583, freqs: [
108
+ [1, 2, 7, 14, 24, 43, 54, 78, 105, 137, 195, 238, 310, 430, 450, 496, 561, 595, 683, 772]
252
109
  ]
253
110
  ),
254
111
  21 => DesignSet.new(
255
- nyq = 1871, freqs = [
112
+ nyq: 1871, freqs: [
256
113
  [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 218, 242, 312, 343, 425, 498, 598, 700, 755, 795, 882]
257
114
  ]
258
115
  ),
259
- 22 => DesignSet.new(
260
- nyq = 2070, freqs = [
261
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 335, 399, 444, 613, 691, 715, 841, 902, 942, 989]
262
- ]
263
- ),
264
- 23 => DesignSet.new(
265
- nyq = 2306, freqs = [
266
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 314, 438, 540, 564, 684, 758, 784, 924, 971, 1035, 1096]
267
- ]
268
- ),
269
- 24 => DesignSet.new(
270
- nyq = 2625, freqs = [
271
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 470, 529, 659, 737, 903, 977, 1017, 1103, 1127, 1285]
272
- ]
273
- ),
274
- 25 => DesignSet.new(
275
- nyq = 2886, freqs = [
276
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 618, 642, 728, 885, 1005, 1036, 1194, 1230, 1402]
277
- ]
278
- ),
279
- 26 => DesignSet.new(
280
- nyq = 3227, freqs = [
281
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 529, 634, 748, 824, 1071, 1130, 1238, 1321, 1465, 1529]
282
- ]
283
- ),
284
- 27 => DesignSet.new(
285
- nyq = 3549, freqs = [
286
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 529, 702, 941, 1092, 1168, 1251, 1277, 1359, 1542, 1582, 1722]
287
- ]
288
- ),
289
116
  28 => DesignSet.new(
290
- nyq = 3931, freqs = [
117
+ nyq: 3931, freqs: [
291
118
  [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 529, 588, 757, 1046, 1072, 1270, 1377, 1490, 1535, 1702, 1738, 1915]
292
119
  ]
293
120
  ),
294
- 29 => DesignSet.new(
295
- nyq = 4298, freqs = [
296
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 529, 588, 680, 903, 1016, 1283, 1328, 1406, 1645, 1793, 1869, 1951, 2058]
297
- ]
298
- ),
299
121
  30 => DesignSet.new(
300
- nyq = 4692, freqs = [
301
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 529, 588, 680, 903, 1061, 1131, 1171, 1358, 1502, 1721, 1898, 1934, 2012, 2106]
302
- ]
303
- ),
304
- 50 => DesignSet.new(
305
- nyq = 17_853, freqs = [
306
- [1, 4, 10, 17, 29, 52, 67, 89, 132, 164, 205, 259, 303, 350, 405, 505, 529, 588, 680, 903, 1016, 1061, 1248, 1358, 1445, 1838, 1878, 2086, 2117, 2195, 2613, 2840, 3060, 3314, 3422, 3816, 4097, 4247, 4565, 4705, 5326, 5511, 6620, 6857, 6983, 7235, 7964, 8058, 8287, 8655]
122
+ nyq: 4493, freqs: [
123
+ [1, 2, 7, 14, 24, 43, 54, 78, 105, 137, 171, 236, 282, 325, 345, 415, 487, 602, 703, 791, 1008, 1057, 1171, 1397, 1591, 1716, 1790, 1900, 2141, 2228]
307
124
  ]
308
125
  )
309
126
  }.freeze
310
127
  end
311
-
312
-
313
- if __FILE__ == $PROGRAM_NAME
314
- require 'colorize'
315
- String.disable_colorization false
316
- require_relative 'error_handling'
317
- ErrorHandling.message ['This module is not intended to be executable.'.yellow]
318
- end