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
Christopher Berner
95b6b5ae91
Make serde support optional
2020-08-30 09:39:39 -07:00
Cem Karan
4a68f2529d
feat: Derived serde::{Serialize, Deserialize} on all public types.
...
This should make it possible to use serde to serialize and deserialize
encoders/decoders while they are in use. This is makes it possible to
ship them between processes as needed.
2020-01-09 19:34:21 -08:00
Luca Bruno
e61e1eb2d4
coded: consume symbol bytes
...
This allows Symbol bytes to be directly consumed by encoder and decoder,
avoiding some extra allocations.
2019-03-30 15:57:56 -07:00
Luca Bruno
9fe45d6d76
decoder: avoid zero-symbols casts
...
This replaces zero-symbols casts with statically checked "Into" type
conversions.
2019-03-30 15:57:56 -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
f85d6c5075
Remove excess clone()'ing
...
Improves performance by 15%
2019-02-12 23:04:30 -08:00
Christopher Berner
16949d72b4
Refactor SIMD ops for Symbol to allow reuse
2019-02-07 18:38:51 -08:00
Christopher Berner
1c7e3dbb17
Fix various compiler warnings
2019-02-07 17:47:26 -08:00
Christopher Berner
6c056b827b
Implement Symbol mul_scalar with AVX2
...
Improves perf by ~10x
2019-02-06 22:45:14 -08:00
Christopher Berner
9811566293
Add AVX2 implementation for Symbol FMA
...
Speeds up FMA by ~10x, and makes encoding/decoding ~35% faster
2019-02-06 22:45:14 -08:00
Christopher Berner
afaa92a65c
Remove TODOs that don't actually seem important
2019-02-06 08:35:43 -08:00
Christopher Berner
5e7c9776a0
Add AVX2 implementation of Symbol +=
...
Improves performance of += by 27%
2019-02-05 23:12:28 -08:00
Christopher Berner
fd4576694f
Optimize Symbol FMA
...
Improves performance ~11%
2019-02-04 22:53:10 -08:00
Christopher Berner
4d8405aa2a
Precompute Octet multiplication table
2019-02-04 22:44:38 -08:00
Christopher Berner
208dff0152
Vectorize += for Symbols
...
This makes += ~8x faster, and encoding/decoding benchmarks ~15% faster
2019-02-04 18:42:58 -08:00
Christopher Berner
dfb700cdc4
Optimize repair packet generation and repair decoding
...
This improves repair performance by ~8%. Also, remove Symbol ops
that aren't needed
2019-02-03 23:19:09 -08:00
Christopher Berner
2b97474588
Optimize Symbol * scalar multiplication
2019-02-03 22:58:37 -08:00
Christopher Berner
27d07a2d26
Avoid multiplication by zero in decoder
...
Also add assertion, to catch inefficient code
2019-02-03 19:52:33 -08:00
Christopher Berner
ece0c54244
Optimize fma_rows() to avoid multiplying by 1
2019-02-03 19:28:32 -08:00
Christopher Berner
4c084c03ef
Make Symbol division test pass deterministically
2019-02-03 14:53:59 -08:00
Christopher Berner
3b30d29373
Make multiplicative_inverse test pass deterministically
2019-01-31 14:37:37 -08:00
Christopher Berner
3c41b0b17f
Implement FMA for Octet
...
Improves benchmark performance by ~7%
2019-01-29 19:07:16 -08:00
Christopher Berner
ec0a817bc7
Use get_unchecked() in Symbol FMA
...
Improves performance by ~10% on benchmarks
2019-01-29 18:56:26 -08:00
Christopher Berner
7cbf0dc485
Add FMA for Symbols
2019-01-29 18:20:36 -08:00
Christopher Berner
9c597ee6da
Optimize Symbol::mul_scalar
2019-01-28 23:14:17 -08:00
Christopher Berner
3deb34f613
Refactor Symbol to use Octet
2019-01-28 23:08:22 -08:00
Christopher Berner
58522a74d1
Optimize matrix vector multiply
2019-01-28 22:38:02 -08:00
Christopher Berner
912330cd45
Refactor to use Symbol
2019-01-26 21:49:08 -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