Commit Graph

43 Commits

Author SHA1 Message Date
Christopher Berner
36d8fe89d2 Remove wasm support 2023-11-26 07:57:22 -08:00
Christopher Berner
cd1df04d92 Only set no_std when built without the std feature 2023-11-26 07:32:07 -08:00
Slesarew
5a720829fa
feat: support no_std (#143)
* feat: support no_std

`metal` feature supports `no_std` in configuration `default-features = false, features = ["metal"]`.
Float calculation is done via `micromath` crate.

All previously available functionality remains under default `std` feature.

Some tweaking of `python` and `wasm` features was done to compile tests.

* feat: get rid of floats (#2)

* feat: remove conversion to f64, fix features

* chore: uncomment symbols_required checker, fmt

* revert: add cdylib target for python support

* fix: generalize crate type

---------

Co-authored-by: varovainen <99664267+varovainen@users.noreply.github.com>
2023-02-02 18:07:41 -08:00
Pavel
02c80b595a
Added wasm build configuration (#136)
Co-authored-by: Christopher Berner <christopherberner@gmail.com>
2022-10-08 21:08:55 -07:00
Christopher Berner
9a47489160 Enable NEON optimized code path on aarch64 2022-05-16 08:31:45 -07:00
Christopher Berner
95286b9d0b Make extended_source_block_symbols unconditionally public 2022-02-07 19:10:01 -08:00
Christopher Berner
e3e9d6dcc2 Add NEON optimized implementation for octets::add_assign() 2021-02-14 17:15:40 -08:00
Christopher Berner
3e88b065dd Optimize graph substep
Use a union-find data structure which is incrementally updated, instead
of always recomputing the entire graph

This improves performance by 5-10%
2020-12-26 10:05:53 -08:00
Jonathan Nilsson
a81ca51f41 I need access to the partition function for my decoder and i want to create a encoder from a ObjectTransmissionInformation 2020-10-22 22:49:59 -07:00
Christopher Berner
69246f50b1 Add public function to calculate object to block splits 2020-03-20 22:58:09 -07:00
Christopher Berner
26e8b0e509 Add EncoderBuilder to allow more configuration of encoding 2020-02-24 19:09:23 -08:00
Christopher Berner
6eeeb67f70 Merge Python wrapper crate into main crate 2020-02-22 13:31:16 -08:00
Christopher Berner
ec54f3c838 Replace SourceBlockEncoderCache with SourceBlockEncodingPlan 2020-01-26 10:15:56 -08:00
Anders Martinsson
04786d26fd Add operation vectors for better encoding performance
Using stored operation vectors when generating intermediate symbols make
encoding around three times faster (depends on block size).

Signed-off-by: Anders Martinsson <anders.martinsson@intinor.se>
2020-01-26 10:15:56 -08:00
Christopher Berner
d8d8bc33ec Optimize dense binary matrix storage to use bitpacking 2020-01-19 11:08:40 -08:00
Christopher Berner
5d57d3751e Separate binary and octet matrix classes 2020-01-19 11:08:40 -08:00
Christopher Berner
0cecda508c Split sparse matrix into separate file 2020-01-04 16:12:56 -08:00
Christopher Berner
b42b84a746 Refactor iterators into separate file 2020-01-04 16:12:56 -08:00
Christopher Berner
8f8637be8a Move SparseVec into separate file 2020-01-04 16:12:56 -08:00
Christopher Berner
ffd6160099 Fix various stylistic Clippy issues 2019-12-25 12:02:54 -08:00
Christopher Berner
c8fd9bcbff Format code with rustfmt and add format check 2019-12-23 12:04:05 -08:00
Christopher Berner
1cc5502fe2 Expand matrix sparsity benchmark 2019-04-08 20:43:13 -07:00
Christopher Berner
5817ec9765 Refactor OctetMatrix into a trait 2019-04-05 21:18:25 -07:00
Luca Bruno
38df97cce1 raptorq: rustfmt whole project 2019-03-28 21:57:30 -07:00
Christopher Berner
91fa69a130 Gate some public functions with "benchmarking" feature 2019-03-23 14:42:19 -07:00
Christopher Berner
f288654525 Update to 2018 edition 2019-03-22 18:25:07 -07:00
Christopher Berner
91c6745257 Make EncodingPacket public 2019-03-20 17:45:28 -07:00
Christopher Berner
0644794488 Add Encoder and Decoder that can span multiple blocks 2019-02-20 20:52:44 -08:00
Christopher Berner
7c361d698e Add Object Transmission Information struct 2019-02-18 23:25:56 -08:00
Christopher Berner
ca552aaa55 Move PI solver to separate file 2019-02-18 17:02:54 -08:00
Christopher Berner
2abaab93cb Restructure bin targets 2019-02-15 21:14:10 -08:00
Christopher Berner
f85d6c5075 Remove excess clone()'ing
Improves performance by 15%
2019-02-12 23:04:30 -08:00
Christopher Berner
6853bda256 Add benchmark for first phase row selection 2019-02-10 23:06:19 -08:00
Christopher Berner
1e8ac28bfe Add ArrayMap class
Makes offset code easier to understand, and is more reusable as a
HashMap replacement
2019-02-10 13:44:51 -08:00
Christopher Berner
16949d72b4 Refactor SIMD ops for Symbol to allow reuse 2019-02-07 18:38:51 -08:00
Christopher Berner
f944404b3c Add Symbol benchmarks 2019-02-03 22:52:43 -08:00
Christopher Berner
d951e7c00c Add Octet benchmarks 2019-02-03 22:37:30 -08:00
Christopher Berner
623e651615 Implement decoding phase 1
However, there are at least two potential bugs with the graph
construction and the calculation of "original degree"
2019-02-02 19:22:39 -08:00
Christopher Berner
ad44e2991b Implement octet matrix operations 2019-01-26 19:16:07 -08:00
Christopher Berner
8773208cc1 Implement basic arithmetic on symbols 2019-01-24 18:50:46 -08:00
Christopher Berner
44f8a2e75e Implement RNG and reorganize some code 2019-01-23 21:57:40 -08:00
Christopher Berner
f5e0c1ebe1 Add RNG constants and systematic indices 2019-01-23 21:21:48 -08:00
Christopher Berner
24632695ed Initial interfaces 2019-01-22 22:53:23 -08:00