Commit graph

316 commits

Author SHA1 Message Date
Ahmet Inan
7f492e9d21 improved usability of the new erasure code 2024-03-26 18:10:29 +01:00
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