Ahmet Inan
ca2e77b282
keep the result symmetric
2024-02-11 09:48:40 +01:00
Ahmet Inan
7e589c85ef
keep ranges symmetric
2024-02-10 19:46:25 +01:00
Ahmet Inan
b146d9739a
print frame error rate
2024-02-10 10:51:29 +01:00
Ahmet Inan
73ba005015
candidates are now sorted
2024-02-09 13:36:25 +01:00
Ahmet Inan
f839292d92
rank can be nullptr
2024-02-09 13:33:59 +01:00
Ahmet Inan
2f42744db7
expose sorted rank instead of the metric
2024-02-09 13:20:44 +01:00
Ahmet Inan
4b4ee7ae7a
print frame error rate
2024-02-09 09:20:32 +01:00
Ahmet Inan
60efc56473
updated ber plot
2024-02-04 08:51:56 +01:00
Ahmet Inan
33052aae8d
experimenting with list decoding
2024-02-03 13:59:19 +01:00
Ahmet Inan
f3d3afbe01
align parity bits accordingly
...
if we want to use a crc aid at the end, we should move the start of the
first parity bit as far as possible to the front, otherwise we want the
last bit to be a parity bit
2024-01-21 11:07:52 +01:00
Ahmet Inan
e83dbce91f
added ber plot
2024-01-20 15:33:00 +01:00
Ahmet Inan
0bb0eaf5a9
added parity check aided SCL decoding
2024-01-20 15:33:00 +01:00
Ahmet Inan
37ba4b64ef
forward error corrections, mostly
2023-09-18 15:01:01 +02:00
Ahmet Inan
47b520638b
make a quicker, coarser test
2023-07-25 11:50:53 +02:00
Ahmet Inan
ea89a27e92
limit polar to order 20 and list decoder to 16
2023-07-25 11:48:23 +02:00
Ahmet Inan
01878fc81a
use 3/10-rate sequence from TwoInt project
2023-07-14 10:29:39 +02:00
Ahmet Inan
55ddae0c6f
do not rely on long double
...
see this project if more precision is needed:
https://github.com/xdsopl/TwoInt/blob/main/polar.cc
2023-07-07 10:29:58 +02:00
Ahmet Inan
cb7271c85f
added polar code reliability sequence constructor
2023-07-07 10:24:32 +02:00
Ahmet Inan
b9d074adcf
set frozen bits from a reliability sequence
2023-06-18 09:41:46 +02:00
Ahmet Inan
c810d3fc84
hopefully these names are less confusing
2023-06-09 10:06:34 +02:00
Ahmet Inan
272440d749
better not to be clever here
2023-06-07 12:27:01 +02:00
Ahmet Inan
60b9dbf2c0
we have the - operator now
2023-06-06 23:06:12 +02:00
Ahmet Inan
fe25fb2a69
flatten hot functions
2023-06-05 12:18:27 +02:00
Ahmet Inan
6ec9fcba1a
compute constant terms for same row only once
2023-06-05 10:56:41 +02:00
Ahmet Inan
ebb989ce50
wait for more errors to get a better estimation
2023-06-01 07:28:17 +02:00
Ahmet Inan
7ec6a47c89
added code that might be faster on smaller CPUs
2023-05-18 15:55:11 +02:00
Ahmet Inan
e96e4abe0e
oops
2023-05-11 13:41:19 +02:00
Ahmet Inan
9e32042df8
removed block shuffle
2023-05-11 09:01:08 +02:00
Ahmet Inan
8a055ac2b2
split reversible Fisher Yates shuffle into two
2023-05-11 09:00:27 +02:00
Ahmet Inan
8370e6a51c
added SIMD acceleration for GF(2^8) and GF(2^16)
2023-05-09 16:04:32 +02:00
Ahmet Inan
5805246088
added multiply accumulate method
2023-05-08 08:49:14 +02:00
Ahmet Inan
078ae40d83
merged encoder and decoder
2023-05-08 08:12:17 +02:00
Ahmet Inan
26e83f13d6
optimize for Raspberry Pi 4
2023-05-05 14:20:00 +02:00
Ahmet Inan
2b7645ced3
use faster vqtbl1q_u8 on ARM64
2023-05-05 08:53:56 +02:00
Ahmet Inan
986059694e
added support for aarch64
...
__ARM_NEON__ is not defined on gcc anymore ..
2023-05-05 08:06:59 +02:00
Ahmet Inan
f2ebaf4504
allow user to decode block by block
2023-04-28 10:55:46 +02:00
Ahmet Inan
43a0f7a5ec
less is more
2023-04-25 09:48:34 +02:00
Ahmet Inan
daa622d1eb
show some numbers
2023-04-24 15:44:19 +02:00
Ahmet Inan
bb527dd888
better not to bind here
2023-04-24 14:54:22 +02:00
Ahmet Inan
eb6e002d52
added Cauchy Reed Solomon erasure coding
...
Read more about the Cauchy matrix:
https://en.wikipedia.org/wiki/Cauchy_matrix
The Art of Computer Programming
Volume 1: Fundamental Algorithms
Donald E. Knuth - 1997
Paragraph 1.2.3: Sums and Products
Page 37, Cauchy's matrix:
$a_{ij} = \frac{1}{x_i + y_j}$
Page 38, Exercise 41:
$b_{ij} = \frac{\prod_{k=1}^{n}{(x_j + y_k)(x_k + y_i)}}{(x_j + y_i)\prod_{k \ne j}^{n}{(x_j - x_k)}\prod_{k \ne i}^{n}{(y_i - y_k)}}$
2023-04-24 13:35:30 +02:00
Ahmet Inan
3fa6dde2a8
make gnu compiler happy
2023-04-21 17:06:49 +02:00
Ahmet Inan
41fa2c7f40
use much faster __builtin_clz
2023-04-21 12:00:40 +02:00
Ahmet Inan
9f07a27eaf
don't need to recompute degree of r
2023-04-21 09:37:36 +02:00
Ahmet Inan
4a24450351
we can now use TYPE, as degree is always smaller
2023-04-21 09:18:49 +02:00
Ahmet Inan
595cf80cc5
degree of poly is always larger than of the element
2023-04-21 09:17:09 +02:00
Ahmet Inan
9570346a59
experimenting with 3 times faster EEA
...
https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm#Simple_algebraic_field_extensions
2023-04-21 09:11:11 +02:00
Ahmet Inan
9774948cd3
added reference implementation and exhaustive testing
2023-04-20 14:04:32 +02:00
Ahmet Inan
39f135f8e0
added - operators
2023-04-16 13:10:37 +02:00
Ahmet Inan
03ac76c7d8
added reciprocal from index to index type
2023-04-15 20:17:31 +02:00
Ahmet Inan
e55c2bc083
added a simple reversible block wise shuffle
2023-03-28 11:44:15 +02:00