aboutsummaryrefslogtreecommitdiff
path: root/src/H_256_512_4.c
blob: 793e585a52bcf7dd75485c8564634d55a25593ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
/*
  FILE....: H_256_512_4.c

  Static arrays for LDPC codec H_256_512_4, generated by ldpc_gen_c_h_file.m.
*/

#include "H_256_512_4.h"

#include <stdint.h>

const uint16_t H_256_512_4_H_rows[] = {
    31,  4,   119, 30,  148, 50,  53,  47,  6,   1,   91,  82,  20,  91,  180,
    41,  42,  48,  97,  129, 5,   8,   162, 5,   55,  10,  100, 18,  111, 9,
    71,  130, 26,  77,  29,  14,  9,   3,   170, 176, 18,  35,  21,  73,  80,
    41,  62,  34,  72,  45,  141, 39,  121, 12,  46,  16,  91,  24,  84,  57,
    16,  21,  2,   65,  44,  14,  32,  39,  143, 106, 53,  23,  31,  100, 24,
    75,  27,  25,  13,  67,  23,  81,  99,  101, 28,  7,   153, 13,  43,  38,
    64,  97,  7,   76,  22,  34,  35,  8,   19,  31,  40,  54,  43,  11,  52,
    40,  7,   123, 21,  46,  10,  18,  98,  63,  48,  37,  25,  58,  33,  58,
    84,  41,  16,  47,  185, 65,  58,  41,  8,   12,  63,  93,  60,  47,  23,
    92,  4,   28,  52,  6,   74,  57,  43,  17,  148, 1,   11,  52,  12,  10,
    109, 19,  74,  40,  3,   49,  69,  30,  20,  64,  31,  6,   82,  71,  89,
    36,  17,  68,  67,  56,  110, 20,  172, 54,  36,  15,  56,  4,   26,  24,
    14,  45,  158, 69,  5,   6,   2,   19,  16,  8,   72,  58,  108, 57,  125,
    38,  24,  105, 56,  27,  73,  82,  63,  25,  22,  112, 44,  19,  14,  133,
    50,  55,  3,   18,  34,  17,  42,  21,  1,   7,   26,  128, 75,  95,  111,
    51,  15,  5,   3,   78,  79,  32,  1,   48,  108, 11,  32,  29,  72,  66,
    15,  2,   66,  4,   2,   87,  113, 80,  84,  13,  9,   104, 23,  69,  29,
    101, 54,  20,  136, 61,  203, 52,  93,  75,  9,   168, 142, 102, 140, 110,
    194, 139, 160, 83,  145, 132, 62,  50,  198, 46,  94,  60,  130, 72,  192,
    60,  76,  131, 50,  155, 179, 163, 12,  113, 197, 183, 120, 118, 70,  103,
    120, 83,  208, 96,  172, 56,  174, 124, 161, 68,  140, 51,  139, 186, 143,
    95,  93,  92,  98,  85,  107, 25,  123, 44,  155, 121, 96,  106, 133, 103,
    125, 78,  59,  83,  66,  159, 112, 90,  133, 224, 131, 51,  157, 32,  49,
    134, 79,  216, 11,  81,  33,  53,  128, 26,  28,  68,  85,  162, 67,  87,
    68,  92,  87,  133, 40,  144, 45,  80,  187, 118, 131, 114, 35,  91,  135,
    172, 98,  195, 17,  76,  213, 70,  141, 48,  70,  105, 79,  96,  149, 88,
    99,  111, 38,  147, 86,  45,  77,  118, 61,  42,  161, 61,  73,  71,  44,
    63,  216, 53,  117, 71,  60,  55,  81,  49,  33,  139, 134, 28,  188, 171,
    176, 121, 119, 89,  70,  164, 151, 29,  195, 157, 135, 43,  59,  47,  36,
    78,  35,  59,  179, 88,  13,  69,  22,  101, 119, 150, 80,  116, 171, 159,
    172, 86,  122, 107, 66,  46,  100, 169, 159, 163, 101, 149, 105, 27,  54,
    154, 86,  165, 170, 132, 93,  115, 142, 65,  106, 39,  150, 136, 90,  198,
    124, 132, 82,  22,  183, 103, 118, 37,  30,  112, 190, 83,  98,  30,  120,
    97,  39,  36,  109, 88,  33,  111, 156, 97,  94,  62,  74,  130, 34,  77,
    51,  109, 175, 94,  208, 115, 217, 107, 164, 180, 10,  229, 184, 155, 158,
    152, 204, 142, 187, 130, 209, 185, 110, 75,  219, 151, 95,  116, 200, 226,
    194, 89,  162, 157, 78,  181, 240, 178, 77,  150, 217, 202, 179, 136, 163,
    126, 204, 100, 236, 99,  183, 137, 236, 188, 217, 107, 204, 115, 218, 204,
    145, 162, 241, 183, 121, 117, 160, 148, 143, 152, 169, 221, 166, 149, 153,
    223, 127, 122, 144, 125, 138, 191, 146, 177, 146, 245, 153, 129, 231, 169,
    73,  165, 112, 240, 15,  88,  158, 64,  163, 126, 59,  114, 137, 171, 126,
    125, 176, 108, 124, 221, 202, 184, 65,  108, 230, 174, 146, 134, 87,  144,
    189, 186, 106, 199, 109, 86,  219, 191, 205, 64,  173, 234, 141, 239, 168,
    90,  123, 137, 76,  182, 114, 85,  102, 219, 74,  242, 215, 156, 122, 177,
    156, 168, 228, 131, 173, 81,  205, 67,  85,  94,  38,  196, 161, 89,  201,
    226, 206, 170, 139, 153, 178, 166, 184, 49,  203, 215, 233, 102, 62,  140,
    42,  184, 57,  116, 189, 99,  37,  154, 37,  138, 196, 197, 92,  147, 243,
    178, 210, 140, 180, 114, 190, 120, 104, 194, 220, 203, 200, 205, 110, 182,
    161, 181, 151, 178, 225, 157, 196, 230, 152, 128, 187, 115, 160, 174, 102,
    220, 207, 240, 124, 27,  197, 127, 196, 222, 84,  148, 239, 104, 228, 145,
    147, 169, 61,  223, 164, 143, 134, 128, 160, 190, 229, 188, 156, 132, 79,
    90,  104, 242, 252, 145, 253, 193, 238, 150, 224, 211, 117, 251, 199, 180,
    254, 208, 209, 250, 248, 232, 254, 232, 144, 177, 246, 167, 159, 141, 245,
    231, 210, 113, 175, 182, 227, 234, 254, 217, 154, 176, 233, 226, 182, 213,
    197, 135, 254, 127, 255, 198, 206, 255, 253, 208, 247, 113, 211, 216, 253,
    210, 228, 165, 243, 212, 222, 256, 227, 232, 181, 248, 209, 238, 214, 229,
    215, 250, 199, 126, 147, 195, 244, 251, 221, 256, 214, 250, 214, 213, 252,
    234, 193, 175, 218, 241, 193, 198, 167, 146, 235, 233, 166, 249, 239, 185,
    173, 192, 252, 226, 136, 222, 256, 186, 174, 240, 242, 235, 215, 167, 129,
    236, 223, 199, 123, 218, 224, 177, 243, 235, 218, 245, 256, 249, 149, 246,
    225, 155, 237, 190, 95,  231, 175, 166, 201, 220, 251, 250, 221, 248, 127,
    202, 201, 191, 230, 245, 191, 246, 206, 135, 96,  251, 55,  224, 222, 116,
    234, 252, 231, 187, 152, 154, 233, 239, 227, 189, 205, 232, 247, 122, 138,
    209, 103, 211, 185, 236, 200, 181, 105, 214, 244, 164, 213, 202, 210, 206,
    246, 235, 212, 167, 192, 151, 207, 158, 189, 207, 229, 212, 223, 238, 188,
    200, 165, 249, 211, 247, 238, 171, 219, 248, 227, 137, 225, 119, 170, 255,
    173, 237, 255, 243, 192, 138, 203, 142, 253, 249, 230, 195, 241, 129, 244,
    216, 186, 228, 201, 242, 241, 237, 247, 212, 225, 194, 237, 207, 168, 179,
    220, 117, 193, 244};

const uint16_t H_256_512_4_H_cols[] = {
    10,  63,  38,  2,   21,  9,   86,  22,  9,   9,   93,  37,  79,  36,  93,
    56,  123, 28,  99,  2,   43,  95,  72,  58,  66,  33,  77,  85,  35,  4,
    1,   67,  95,  48,  42,  166, 116, 90,  52,  101, 16,  17,  89,  65,  50,
    24,  8,   18,  89,  6,   56,  6,   7,   1,   25,  50,  60,  118, 77,  26,
    4,   21,  114, 91,  64,  79,  80,  54,  157, 43,  31,  28,  44,  141, 8,
    31,  34,  33,  91,  45,  82,  12,  18,  59,  64,  124, 104, 94,  30,  82,
    11,  62,  7,   2,   25,  48,  19,  63,  48,  27,  84,  12,  44,  201, 130,
    70,  6,   106, 123, 14,  29,  81,  30,  100, 4,   26,  9,   42,  3,   41,
    53,  76,  67,  52,  75,  44,  46,  97,  20,  18,  32,  20,  73,  90,  44,
    3,   50,  79,  16,  13,  26,  11,  59,  21,  2,   81,  77,  5,   72,  6,
    24,  14,  73,  37,  12,  146, 32,  13,  25,  17,  53,  23,  36,  7,   60,
    71,  24,  10,  69,  39,  102, 49,  103, 51,  1,   38,  22,  36,  35,  8,
    34,  32,  40,  11,  20,  58,  17,  52,  119, 136, 80,  29,  4,   15,  78,
    160, 39,  23,  11,  27,  141, 40,  5,   15,  127, 49,  199, 3,   15,  29,
    8,   62,  42,  71,  73,  56,  5,   57,  23,  142, 70,  63,  74,  7,   133,
    28,  33,  59,  10,  113, 28,  18,  39,  34,  97,  47,  135, 5,   101, 35,
    61,  113, 61,  79,  27,  23,  53,  17,  100, 16,  10,  1,   3,   13,  47,
    64,  146, 187, 155, 137, 24,  140, 93,  98,  30,  26,  104, 54,  88,  66,
    176, 61,  144, 41,  152, 13,  62,  187, 81,  75,  78,  98,  200, 99,  172,
    158, 73,  88,  119, 96,  97,  175, 185, 137, 68,  106, 46,  144, 103, 68,
    111, 55,  124, 115, 156, 22,  86,  105, 71,  102, 156, 170, 142, 120, 99,
    30,  143, 47,  131, 96,  111, 199, 103, 100, 184, 126, 148, 49,  89,  143,
    22,  94,  37,  76,  131, 112, 94,  163, 46,  121, 101, 139, 107, 134, 162,
    134, 14,  106, 61,  25,  60,  71,  92,  113, 83,  46,  188, 141, 74,  236,
    185, 72,  54,  112, 151, 21,  136, 91,  38,  116, 56,  162, 64,  114, 167,
    45,  63,  147, 108, 107, 78,  76,  75,  218, 86,  27,  85,  214, 83,  116,
    119, 42,  101, 177, 57,  55,  51,  16,  67,  77,  19,  83,  138, 66,  131,
    38,  171, 68,  85,  168, 34,  149, 87,  95,  80,  65,  145, 31,  43,  170,
    90,  99,  95,  133, 88,  166, 164, 120, 129, 111, 31,  40,  82,  169, 41,
    12,  67,  41,  49,  110, 102, 110, 113, 163, 172, 199, 126, 104, 89,  29,
    122, 189, 43,  48,  75,  183, 149, 109, 173, 45,  155, 155, 202, 14,  19,
    58,  55,  195, 86,  83,  115, 92,  36,  91,  125, 203, 81,  108, 119, 84,
    213, 40,  65,  151, 72,  151, 87,  20,  98,  88,  114, 51,  224, 70,  132,
    92,  92,  144, 125, 187, 84,  132, 175, 68,  130, 74,  80,  87,  51,  19,
    50,  82,  219, 242, 213, 178, 185, 162, 107, 129, 37,  111, 147, 130, 185,
    181, 227, 123, 167, 112, 188, 159, 109, 205, 135, 180, 117, 179, 208, 138,
    238, 233, 100, 232, 159, 215, 117, 179, 187, 159, 220, 109, 122, 179, 143,
    149, 140, 110, 134, 128, 158, 33,  226, 139, 96,  174, 159, 177, 181, 127,
    177, 133, 146, 177, 150, 128, 126, 240, 156, 105, 186, 129, 154, 191, 147,
    153, 76,  124, 141, 180, 231, 191, 154, 202, 78,  233, 140, 196, 117, 184,
    165, 223, 57,  136, 132, 158, 137, 132, 240, 121, 135, 74,  205, 176, 179,
    252, 198, 121, 65,  193, 243, 171, 225, 206, 54,  139, 216, 182, 153, 142,
    189, 200, 70,  176, 121, 225, 104, 98,  147, 222, 117, 32,  115, 226, 108,
    161, 156, 107, 136, 188, 160, 178, 127, 217, 69,  110, 59,  96,  192, 145,
    133, 190, 198, 167, 87,  186, 69,  247, 174, 183, 194, 221, 161, 60,  97,
    188, 209, 140, 116, 150, 202, 213, 193, 173, 153, 114, 90,  105, 124, 194,
    183, 15,  184, 138, 62,  171, 125, 120, 166, 207, 183, 235, 150, 197, 93,
    202, 173, 215, 190, 94,  120, 205, 163, 148, 204, 55,  173, 165, 225, 47,
    69,  191, 180, 204, 125, 85,  145, 151, 39,  122, 142, 224, 108, 161, 205,
    123, 219, 106, 171, 237, 203, 216, 138, 66,  169, 130, 126, 118, 244, 206,
    170, 112, 235, 242, 193, 237, 128, 154, 212, 146, 210, 84,  143, 105, 57,
    35,  222, 109, 233, 245, 229, 244, 228, 186, 220, 190, 251, 150, 236, 149,
    250, 209, 241, 189, 216, 214, 208, 172, 218, 228, 253, 197, 204, 221, 228,
    162, 255, 238, 161, 237, 245, 253, 181, 242, 232, 196, 241, 154, 128, 217,
    176, 207, 182, 200, 178, 234, 172, 211, 255, 148, 152, 209, 212, 199, 194,
    192, 182, 155, 241, 250, 203, 160, 218, 243, 169, 168, 254, 169, 164, 239,
    201, 251, 223, 137, 254, 230, 253, 248, 157, 227, 236, 249, 157, 211, 246,
    244, 168, 254, 118, 191, 215, 249, 224, 157, 248, 237, 184, 201, 256, 223,
    230, 255, 207, 219, 198, 235, 256, 207, 246, 234, 247, 198, 220, 192, 254,
    231, 220, 239, 166, 197, 135, 227, 195, 103, 230, 246, 236, 252, 152, 252,
    210, 245, 175, 222, 218, 228, 167, 196, 131, 230, 244, 118, 238, 115, 239,
    234, 206, 221, 211, 217, 168, 210, 134, 251, 214, 200, 203, 247, 209, 102,
    204, 243, 212, 170, 196, 251, 240, 221, 214, 195, 223, 222, 139, 165, 148,
    212, 252, 197, 210, 208, 229, 180, 181, 239, 219, 250, 201, 248, 153, 227,
    255, 248, 234, 231, 229, 224, 122, 208, 241, 190, 229, 58,  206, 192, 250,
    52,  178, 195, 211, 246, 189, 186, 174, 238, 53,  127, 215, 253, 145, 232,
    242, 160, 247, 164, 217, 240, 249, 233, 165, 174, 175, 163, 194, 182, 249,
    213, 235, 226, 243, 256, 226, 256, 152, 193, 245, 216, 232, 144, 158, 164,
    231, 45,  225, 129};
const float H_256_512_4_input[] = {
    0.51757034789149192,  3.6747768327751107,    7.7236521981742676,
    -4.7107278911943427,  7.7122230429603542,    -14.946266731679888,
    -9.5567730710166714,  -7.5877780009775071,   -8.3629835471455127,
    8.4844922006171419,   9.4734932311757394,    -6.8841383473145763,
    -4.6284234216637214,  -7.8669368046418358,   12.226645532420404,
    -7.3774603770015981,  7.7649435759022252,    -12.127076055381709,
    7.4012504229333951,   6.5535650029238361,    -12.318540215486564,
    -15.835684442673877,  10.779009024429017,    11.841953278425423,
    7.1804756215244456,   2.8408801132499808,    -11.09563707808943,
    7.1789245659484093,   10.24316438845271,     6.4838781564425041,
    15.604657058526026,   17.695904359387381,    6.4313440196217382,
    4.9488783865887793,   9.9527088015343548,    -2.7205772402494488,
    12.156344173793103,   -11.205004871994769,   -12.211802140176635,
    -5.4465825069640195,  -10.152012956739171,   -1.1179875067929763,
    -10.479027227263707,  -8.5090340518598531,   -7.5030586007744553,
    -4.9370617561264698,  -0.78486455084153151,  -9.9902064527523908,
    -7.1974696423785023,  15.904653930974046,    -3.2958890233801612,
    6.9052860853356819,   -15.446573781345712,   8.2911853913447402,
    0.40395028984397091,  -1.5672283593714793,   11.262818645299314,
    7.1710703603039994,   4.1597725238676002,    -11.382339164684311,
    14.132112287584638,   3.2925942129085506,    -6.1011528087958027,
    7.8516182070629279,   5.9768136552516342,    2.699484726705069,
    5.2066829520768056,   -0.7207484827070334,   -8.2386610240355651,
    6.0717182827619967,   -8.5076501195080585,   -13.703946410299512,
    9.2623574093742604,   -6.9682747118380446,   -4.9023588860381846,
    9.3084136203033694,   11.148851565040838,    9.1302433636417319,
    -6.9420186741739887,  7.9337725600954645,    15.582342768204805,
    10.766162729242598,   -4.9576813210420525,   6.6727325567460882,
    -12.196894026695226,  11.022208518924467,    1.6977876257198246,
    -8.9073010297491386,  -3.4873714683714097,   10.267082736130799,
    -6.2704199741458089,  -6.7409188535835654,   7.0799113259507331,
    4.2517449421654421,   10.988809910933929,    8.3098010378717788,
    0.65053609686067293,  -9.8680908214463745,   -0.13210703660490827,
    10.569960823465198,   5.631834756326584,     -17.599792146333385,
    -7.4505114988199814,  2.0876055933892643,    -11.848744235597531,
    -6.370769553578242,   10.349368965148454,    -11.054250547489133,
    4.9685950633439182,   16.26542564640426,     8.9946743875150297,
    -6.9695225550874884,  -12.491901775385568,   5.221170286398829,
    -14.57146740285134,   -11.185574766943571,   -1.4528792719442074,
    16.807973653612009,   -2.14773040667668,     -6.5893455221648924,
    -10.366321204598048,  11.545810725289135,    11.526831005704754,
    3.8156547809267578,   -14.793195556950453,   10.727608736368884,
    4.245416988419259,    -14.823682249573251,   -0.055849778718978338,
    0.12268898147135411,  -5.3423951302536539,   8.9810197259759086,
    13.968989424307708,   10.292317467705674,    10.814835776145282,
    7.8639985326787416,   -15.489411581463163,   -5.3160377506090404,
    9.6739321724911669,   7.3738788431938094,    -7.2089426352102386,
    3.2896767517308105,   11.134312631894316,    6.8196648270250888,
    11.696870111795384,   11.33636158982544,     7.6883282280715841,
    -8.5354168089995976,  5.5939282378823458,    -9.6804348667718987,
    10.27449691588806,    -4.601540486911178,    11.476772689524227,
    13.587705068864731,   -5.4206086888829965,   -8.2565155897262077,
    11.240961601590284,   13.474564188433188,    2.9546569324344847,
    6.7205439189069738,   -13.857561305882877,   -16.669935196013508,
    7.7992349867934445,   -9.1054167276310629,   13.234970834427072,
    3.8904964584199755,   -0.007103062296974271, -7.5226178742319778,
    11.799567862083773,   10.306340656379247,    -9.6031596648762214,
    4.7873593091676456,   -8.7508487803331807,   -11.418105573040524,
    -8.9917029259865018,  -4.8764541287524565,   -13.141445425385772,
    10.478907923003296,   -15.62610293315559,    12.174935599981024,
    14.110425042238267,   -5.3351060433143189,   -10.448529758835216,
    7.1555832021079713,   -3.7581044977756339,   4.9877839461702953,
    6.4352605191478229,   6.2681705969506636,    1.0591230129022271,
    4.6014572060908856,   3.630881166938468,     5.2610118858162744,
    -4.0406336475456959,  6.7089084012087339,    -12.399263098594448,
    -8.6885785210631923,  10.200283753268543,    -9.6711128555761476,
    7.9523636179902066,   -1.6194893091097409,   7.8100926558018475,
    4.7308921409583666,   4.2870845092503842,    -5.5113211353649589,
    4.6632369877554547,   13.580052366571808,    -13.989676528031513,
    7.4788332322884292,   -7.9055834172669863,   -5.4521774799559077,
    -2.3832875853818489,  12.500172468473709,    4.4257047233124993,
    8.6185463356078564,   1.6503341929121846,    9.3817571992318136,
    14.707911493485314,   -8.8168554234237906,   16.686275657629849,
    8.0726217002484866,   -5.7336803150162323,   11.199173436763308,
    2.9624772806565214,   6.084008649398772,     13.651210034355321,
    -5.3568028597546125,  -8.1131526120118433,   20.586630811135656,
    3.2537667200472802,   2.4661860405319476,    -12.302300974267494,
    10.14496212813636,    12.013406576337029,    12.48076525937795,
    -7.7705021913306842,  4.4923244656818495,    3.9070226775151733,
    5.2441749708856884,   5.3679526862494482,    13.94196173641695,
    4.5296297811057684,   -7.1127741954540973,   -14.014901825754492,
    -5.4003616016916451,  11.30329597194279,     13.212639183152664,
    -6.7394206827710148,  -9.3081209755867338,   -2.8134083772289786,
    12.362737057742141,   -7.5816771419304487,   -6.4823236067192118,
    6.4368678007326325,   4.2139501741847152,    -1.3015955505891499,
    -7.0693979078400888,  5.1567879937036976,    -14.29429720815733,
    7.0965274119499995,   14.335090253318402,    -1.1060086481123688,
    12.280127372295182,   15.355627698217484,    7.1118230503395736,
    0.080951481678914361, 4.5275811277845772,    -12.807880002244142,
    -7.9315604470260013,  -10.460706930669154,   -8.6438350740702976,
    -5.0714513528336349,  4.1875900660492,       8.7133453013769007,
    -9.8239011192052565,  6.2390365458120005,    -8.4029965191052352,
    4.984656567448889,    -11.441087746951402,   -2.8554666393879051,
    8.7117720128765459,   -10.315850818433494,   8.7178427912116181,
    4.5674735423087416,   5.059245742630825,     -6.9741413761506754,
    6.8923077141725289,   -7.3195029505868936,   7.0150611857028995,
    -13.57329609597363,   2.4003974632430873,    -12.79534048621632,
    14.073423100856756,   13.050627886243262,    -9.9719834315477431,
    -8.9255382467931454,  6.4498466627026518,    7.9947952448158626,
    7.2030719578630773,   -13.912680862467084,   8.6608429906142881,
    8.3632503895529862,   5.9305710042005879,    -2.9130898919754795,
    -11.254118896275536,  -13.798108618024084,   13.07950958186338,
    14.355477267752258,   3.222947027333253,     5.9042659378475841,
    -8.1324540511219237,  7.1175191808602341,    -6.585103539549686,
    -9.2836832446594695,  -15.365446897780474,   -10.994019011437626,
    4.0590717801675913,   9.5109814268426955,    -4.3279461184809049,
    -15.720038357484848,  11.951856945935143,    12.682014968828179,
    16.336475563256471,   7.6649931256123782,    5.3001533728428951,
    14.811865942579626,   -7.1591674243249166,   6.9641361242422413,
    2.2887071087144921,   -7.4283680060564725,   9.8045942879168955,
    -6.4177702207017902,  10.47585866871807,     -7.6078593665950418,
    8.6728241961706676,   -2.3844019549449365,   -12.333348889567585,
    -8.0410508790992044,  -15.319448351686553,   4.1439520121183158,
    10.124921135545005,   -2.719059876565721,    -7.15172555283569,
    -13.928003800487966,  5.0190908596544332,    -10.550763525222086,
    -9.6902455518808601,  3.4656033167131572,    5.7434253113056117,
    2.2353462963087205,   8.2800699204033581,    -9.5917816492257746,
    6.604246872114893,    5.7926392372814988,    -13.95249621884361,
    -6.3255003024458976,  -9.0958782067905091,   6.6894074274331334,
    -16.305393183977255,  -14.754831506925347,   9.9598275167453405,
    -2.2953313029712268,  -9.9770589384486907,   -1.2849873707603492,
    -11.674107434694577,  4.2308935045924834,    -15.986216502652635,
    -12.496143349107586,  -6.961301171448163,    7.173141034418097,
    -16.747323708994283,  -6.1459334756956441,   -7.6817564340549813,
    -2.9759502920998209,  4.4290936044370053,    15.85792699420073,
    3.8733475037532075,   13.282888674545026,    -8.8075790389214674,
    15.756528771444074,   -0.9172738378747668,   -5.8878468427817152,
    5.3239983067421415,   7.0650495320494038,    10.266937497463937,
    -6.4024274906880185,  5.7532733339731017,    -16.811716029564213,
    -8.4435829388264345,  -14.547150170272406,   -8.5663296440687802,
    7.9505572216380145,   6.6923964384181422,    5.1145018718318767,
    6.7546204865730397,   -5.7136099383940193,   6.5164149727652187,
    8.5399580765014118,   11.118659305825421,    -5.11256462073184,
    -7.4204131176081027,  2.4372467698010158,    -11.332205684329931,
    -2.300944450055125,   -7.5761485315412722,   7.9239226824179134,
    15.148232300109672,   -8.2866195088681511,   -12.500886819111757,
    5.8898233180615511,   6.0191326161618939,    -9.571768060299096,
    8.2993401574423782,   13.192810814495525,    9.2287810197171662,
    -6.3446655091317981,  4.6194007533037533,    -12.299288931968976,
    -11.301088930234318,  -12.748142414710747,   -11.089177834341021,
    -11.952684158007653,  -12.201173925517882,   -7.8885413991638051,
    6.162990209842949,    10.074139560291529,    0.33052151002636837,
    -13.233240567315669,  8.5041479968410876,    -3.877731464378761,
    -8.4152150964636405,  -4.416934778774996,    -2.7605197724504817,
    8.4248907474003509,   9.6866360704229582,    -6.7860748062114764,
    5.350251139963115,    8.0461693937601364,    5.4866837755943072,
    8.2170770706027305,   -4.9303099776579087,   0.19594956934783084,
    -3.0366818211786448,  -0.89771548197359008,  -9.2559494368024176,
    13.057529669212126,   1.3182610405525714,    -5.379813192370591,
    7.0595292864637926,   -8.0652416728279732,   -10.017709623333209,
    -19.043167085088943,  4.2036836072934642,    7.2607959496260142,
    -20.579086044233659,  -10.955745136261804,   2.8075247300020623,
    6.158819317084113,    -4.1432994280765003,   -8.4759687111809825,
    -7.4063800738713441,  -11.809011583528154,   3.7455788861378996,
    11.055125561517878,   -11.050002999845985,   -12.641967828832232,
    9.7182304238773387,   -9.6040255370844871,   8.5406323003146039,
    5.5370300264242678,   9.6390471518242808,    -4.5175089872689815,
    11.211130149275418,   -7.0619345213828808,   9.0284753188655795,
    6.5193504139524956,   5.9080653530360792,    -6.9270802426346494,
    -7.5939041868540862,  11.483724465414687,    -6.4198704940922147,
    11.594197774773704,   9.8177782003472842,    7.8573132285189722,
    -14.764671284444628,  10.836352484846104,    -5.1661833245215307,
    -2.2845730141844491,  1.4521554038891078,    14.07531661629624,
    14.874495505085839,   -10.926627051439677,   1.0207490010126001,
    -1.9216020879305911,  14.405401350119591,    11.010298478850032,
    3.7506698273138919,   -11.982303137905003,   -6.2083663060173526,
    6.2522765425768316,   7.7069832341275522,    -18.065137191023226,
    6.792106322469885,    -0.93798035245625377,  7.8641939572750079,
    10.30225964497456,    -7.0018228039310735,   -7.0742108654561564,
    4.1031586655458723,   2.3748564555251002,    -4.3322313906258154,
    9.6230244300270638,   19.666940225626419};
const char H_256_512_4_detected_data[] = {
    1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,
    1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1,
    0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
    0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1,
    0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1,
    0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1,
    1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1,
    0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
    1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0,
    1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0,
    1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0,
    0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
    1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0,
    1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0,
    0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
    0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
    0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1,
    1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0,
    0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0,
    1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0};