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 |
|
Ahmet Inan
|
346245c4cc
|
added simple interleavers
|
2023-03-27 11:07:04 +02:00 |
|
Ahmet Inan
|
3a860b9c73
|
use compile time constant for size
|
2023-03-27 10:09:18 +02:00 |
|
Ahmet Inan
|
f6170cc923
|
added bit-reversal permutation
|
2023-03-25 10:52:39 +01:00 |
|
Ahmet Inan
|
e0857552bb
|
added reversible Fisher-Yates shuffle
|
2023-03-25 09:56:27 +01:00 |
|
Ahmet Inan
|
476a346295
|
use -O2 with -ffast-math and -ftree-vectorize
|
2022-04-07 21:36:38 +02:00 |
|
Ahmet Inan
|
0e1a5a45e4
|
the 2/3 LDPC code uses T=10 BCH code in DVB
v1.0
|
2021-07-22 09:24:45 +02:00 |
|
Ahmet Inan
|
d9b98653dd
|
use short code and a larger list with fixed-point
|
2021-07-13 13:45:06 +02:00 |
|
Ahmet Inan
|
a1764d4d83
|
added CRC aided SCL example
|
2021-07-13 12:15:57 +02:00 |
|
Ahmet Inan
|
9662bf9609
|
simplified branches with only information bits
|
2021-07-13 10:50:06 +02:00 |
|
Ahmet Inan
|
d87ce6e81e
|
simplified branches with only frozen bits
|
2021-07-13 10:50:06 +02:00 |
|
Ahmet Inan
|
631ec8beef
|
use uint32_t for the frozen bits
|
2021-07-13 10:50:06 +02:00 |
|
Ahmet Inan
|
687ae706d7
|
double needs __m128d
|
2021-07-13 10:50:06 +02:00 |
|
Ahmet Inan
|
cc1f412f5d
|
added polar bit freezers, encoders and decoders
|
2021-07-11 10:30:22 +02:00 |
|