Commit graph

147 commits

Author SHA1 Message Date
Ahmet Inan
811024f128 added BCH(15, 5) T=3 example 2020-08-06 20:39:01 +02:00
Ahmet Inan
304a7c8045 pad horizontally to next size of machine word 2020-08-06 20:02:38 +02:00
Ahmet Inan
34a21139c7 added ordered statistics decoding 2020-08-06 13:39:09 +02:00
Ahmet Inan
2944a44b28 time to embrace #pragma once 2020-08-05 10:43:49 +02:00
Ahmet Inan
d196187187 use const on args to improve readability 2020-08-05 10:08:02 +02:00
Ahmet Inan
ea07a593d7 added BCH(127, 64) T=10 example 2020-07-31 10:10:38 +02:00
Ahmet Inan
451bc4e5cc added BCH(255, 131) T=18 example 2020-07-28 15:41:45 +02:00
Ahmet Inan
48303e7f58 added vmul() and vsignum() 2020-07-13 10:21:19 +02:00
Ahmet Inan
0797171e03 don't rely on err[] being signed 2020-07-08 13:46:07 +02:00
Ahmet Inan
14967f8841 lowered ML-decoding threshold to K <= 4 2020-07-08 11:25:11 +02:00
Ahmet Inan
af5160efd3 return -1 for more than T errors 2020-07-08 11:15:29 +02:00
Ahmet Inan
21a44acf4b added result_type, min() and max() methods 2020-07-04 18:53:47 +02:00
Ahmet Inan
6045870288 added BCH(31, 16) T=3 for testing 2020-06-15 07:33:21 +02:00
Ahmet Inan
945da60cbd introduced L constant to play with the number 2020-06-14 23:13:10 +02:00
Ahmet Inan
eccb5ea436 removed T=4 as it is unrealistic for short codes 2020-06-14 21:10:11 +02:00
Ahmet Inan
b54be1c997 moved constructor generator argument to template parameter 2020-06-14 20:43:45 +02:00
Ahmet Inan
538950ca88 improved unrolled K = 2 .. 4 and removed 5 and 6
the generic divide and conquer method produces now better code than the
manually unrolled versions for K > 4
2020-06-14 00:48:11 +02:00
Ahmet Inan
9b4998a3c5 use in-place fast Walsh–Hadamard transform 2020-06-14 00:23:11 +02:00
Ahmet Inan
c0ab2902e8 minor cleanup 2020-06-14 00:01:37 +02:00
Ahmet Inan
a0f710f9b7 improved unrolled K = 2 .. 4 and removed 5 and 6
the generic divide and conquer method produces now better code than the
manually unrolled versions for K > 4
2020-06-13 22:42:29 +02:00
Ahmet Inan
3596f2943b use in-place fast Walsh–Hadamard transform 2020-06-13 21:37:31 +02:00
Ahmet Inan
759ca4b896 added tests for Simplex and Hadamard encoders 2020-06-13 13:28:42 +02:00
Ahmet Inan
003d3bbd4f divide and conquer decoders for K = 2 .. 6 2020-06-12 12:08:47 +02:00
Ahmet Inan
ae13fc7acc doubled loops 2020-06-12 12:06:41 +02:00
Ahmet Inan
43c5d6a91a encoder and soft decoder for augmented Hadamard codes 2020-06-11 23:11:31 +02:00
Ahmet Inan
619d8bd3b4 reduced code duplication with lambda update() 2020-06-11 12:29:22 +02:00
Ahmet Inan
8c2e824b4e moved runtime assert for radius T to compile time 2020-06-11 08:26:15 +02:00
Ahmet Inan
961e5b19fa only flip worst T bits 2020-06-10 20:16:33 +02:00
Ahmet Inan
77f27a8c5e made T a template parameter 2020-06-10 19:53:10 +02:00
Ahmet Inan
f8b782033d print histogram of distances and verify T 2020-06-10 18:32:52 +02:00
Ahmet Inan
fd0555a3e5 added more examples 2020-06-10 14:01:33 +02:00
Ahmet Inan
fd2cdb4d58 do ML decoding if K <= 6 and Chase decoding otherwise 2020-06-10 14:00:27 +02:00
Ahmet Inan
f83c785867 skip metric computation if same as last word 2020-06-09 22:09:56 +02:00
Ahmet Inan
9b1c6cf573 point out soft decoding better 2020-06-09 17:31:31 +02:00
Ahmet Inan
e0423da509 moved ML method to bottom 2020-06-09 14:47:01 +02:00
Ahmet Inan
2be153ca67 only point out decoder errors if decoder is sure 2020-06-09 14:37:55 +02:00
Ahmet Inan
809ab3690b return -1 if unsure 2020-06-09 14:36:19 +02:00
Ahmet Inan
a33c2082d9 added metric() helper 2020-06-09 13:33:42 +02:00
Ahmet Inan
0ebdada99a moved initial metric of hard decision to the top 2020-06-09 12:56:48 +02:00
Ahmet Inan
05bd06ec0a also return codeword unmodulated 2020-06-09 09:24:05 +02:00
Ahmet Inan
5cf0ff2297 added soft Chase decoding for short BCH codes
gives about 1.5dB gain while only half the speed of hard decision.
2020-06-08 18:22:54 +02:00
Ahmet Inan
130af67e08 these codes are short .. 2020-06-08 10:15:50 +02:00
Ahmet Inan
5d944ca7a9 added encoder and syndrome decoder for short BCH codes 2020-06-07 18:28:25 +02:00
Ahmet Inan
1b4899c66d added simplex code encoder and soft decoder entries 2020-06-02 12:09:44 +02:00
Ahmet Inan
65a6feb6e0 divide and conquer unrolled decoders 2020-06-02 11:49:21 +02:00
Ahmet Inan
af29e0434a increased iterations 2020-06-01 12:08:07 +02:00
Ahmet Inan
994e9dc912 added unrolled decoders for K = 2, 3, 4, 5 and 6 2020-06-01 12:02:36 +02:00
Ahmet Inan
2adfe54c76 added test for msg len 2 2020-06-01 09:31:42 +02:00
Ahmet Inan
620466021b added encoder and soft decoder for simplex codes 2020-05-31 17:43:29 +02:00
Ahmet Inan
e2b46aed76 added test for the Maximum length sequence 2020-05-29 12:37:23 +02:00