Ahmet Inan
8970b8c053
removed testing code
2024-03-26 09:13:45 +01:00
Ahmet Inan
10fd35cfa3
reduce only every third multiplication
2024-03-26 08:59:31 +01:00
Ahmet Inan
c2977efb49
only add prime if needed
2024-03-26 08:52:24 +01:00
Ahmet Inan
df6aeff840
skip every other reduction step
2024-03-26 07:45:23 +01:00
Ahmet Inan
c87fcdb29b
skip reduction with addition and subtraction
2024-03-25 12:11:29 +01:00
Ahmet Inan
b5fc0ae664
reduce only at the last addition
2024-03-25 12:00:10 +01:00
Ahmet Inan
35451540ca
added prime field based Cauchy Reed Solomon erasure coding
2024-03-25 11:56:41 +01:00
Ahmet Inan
485f6afe42
moved TYPE checks to tests
2024-03-24 11:10:49 +01:00
Ahmet Inan
f5cd82db8c
compute inverse using Fermat's little theorem
2024-03-24 10:51:28 +01:00
Ahmet Inan
fbbc655589
added prime field arithmetic
2024-03-24 10:21:47 +01:00
Ahmet Inan
55bd3302d8
changed back to int
2024-03-08 14:27:28 +01:00
Ahmet Inan
ba688ab23b
use merge sort
2024-03-08 14:02:17 +01:00
Ahmet Inan
389fcc3bd8
added comp argument and test for stability
2024-03-08 13:00:40 +01:00
Ahmet Inan
ac5fc8deea
start with insertion sort for better speed
2024-03-08 11:01:38 +01:00
Ahmet Inan
2d5e782135
made random seeding optional
2024-03-08 10:08:21 +01:00
Ahmet Inan
d319189d7a
added merge sort
2024-03-08 09:53:28 +01:00
Ahmet Inan
957eb6f784
use the new sorting functions
2024-03-07 22:04:09 +01:00
Ahmet Inan
524571e6fb
added insertion sort and regression test
2024-03-07 21:21:32 +01:00
Ahmet Inan
6372a965cf
renamed sort.hh to simd_sort.hh
2024-03-07 18:31:52 +01:00
Ahmet Inan
a80f5cd532
avoid indirection when getting the metrics ordered
2024-03-07 18:13:15 +01:00
Ahmet Inan
d4b836fb4e
replaced nth_element with insertion sort
2024-03-06 12:31:19 +01:00
Ahmet Inan
44ed48ab84
use larger number to disable paths
2024-03-05 22:04:30 +01:00
Ahmet Inan
ae0a749d08
added insertion sort and regression test
2024-03-05 14:27:15 +01:00
Ahmet Inan
b038399c90
use the new SIMD sorting wrappers
2024-03-05 09:41:04 +01:00
Ahmet Inan
178ee52e7d
added sorting for SIMD types
2024-03-05 09:38:34 +01:00
Ahmet Inan
54be63f1ce
remade with improved decoders
2024-03-03 20:54:53 +01:00
Ahmet Inan
af3e1f0367
do the pruning before sorting
2024-03-03 16:49:30 +01:00
Ahmet Inan
bef1bdd7a8
metrics are kept sorted now
2024-03-03 08:44:50 +01:00
Ahmet Inan
ed9521ba4b
reordered forked metrics to benefit from a stable sort
...
nth_element does not honor the established order, so previously good
candidates can still be thrown out when the scores are the same.
Using a stable_sort keeps the order but is more costly.
We don't have a stable_partial_sort unfortunately and the one
provided as example, implemented using partial_sort and two aditional
comparisions to make it stable, is slower than a stable_sort.
2024-03-02 12:12:46 +01:00
Ahmet Inan
7d71b00d59
print ambiguity errors
2024-02-28 11:31:34 +01:00
Ahmet Inan
332eb9caf7
removed SCALE constant
2024-02-23 16:48:50 +01:00
Ahmet Inan
b6452a100f
its a 0.7-rate code optimized for 30% erasures
2024-02-23 14:30:05 +01:00
Ahmet Inan
350ec59037
use a higher order but less loops
2024-02-22 11:15:44 +01:00
Ahmet Inan
019adfa609
make gnu compiler happy
2024-02-21 07:54:44 +01:00
Ahmet Inan
3e91ae52d3
keep range symmetric
2024-02-20 17:57:09 +01:00
Ahmet Inan
41b8abaf83
added more shuffle operations for AVX2
2024-02-14 10:48:45 +01:00
Ahmet Inan
f1aae95d34
forgot to change those
2024-02-14 09:53:04 +01:00
Ahmet Inan
2a20850635
added doubled versions of vshuf for AVX2
2024-02-13 14:04:50 +01:00
Ahmet Inan
5721da8bf7
added vshuf versions for SSE
2024-02-13 13:27:55 +01:00
Ahmet Inan
cd320b447f
added double, triple and quadruple versions for SSE
2024-02-13 12:37:38 +01:00
Ahmet Inan
7fb1d671f4
base list size on constant L
2024-02-13 12:35:49 +01:00
Ahmet Inan
a0d1775ce9
added doubled version for AVX2
2024-02-13 12:03:13 +01:00
Ahmet Inan
56903fc707
removed negz constants for consistency
2024-02-13 11:59:44 +01:00
Ahmet Inan
992c83933d
added tripled and quadrupled versions
2024-02-13 11:30:11 +01:00
Ahmet Inan
b7bce346ff
use loops
2024-02-13 10:57:38 +01:00
Ahmet Inan
e29e3a161d
added doubled vshuf for aarch64
2024-02-12 20:26:21 +01:00
Ahmet Inan
9c11c2ff03
added doubled NEON wrappers
2024-02-12 16:17:51 +01:00
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