Expand description
Low-level building blocks for Reed-Solomon encoding/decoding.
This is an advanced module which is not needed for simple usage or basic usage.
This module is relevant if you want to
- use
rate
module and need anEngine
to use with it. - create your own
Engine
. - understand/benchmark/test at low level.
§Engines
An Engine
is an implementation of basic low-level algorithms
needed for Reed-Solomon encoding/decoding.
Naive
- Simple reference implementation.
NoSimd
- Basic optimized engine without SIMD so that it works on all CPUs.
Avx2
- Optimized engine that takes advantage of the x86(-64) AVX2 SIMD instructions.
Ssse3
- Optimized engine that takes advantage of the x86(-64) SSSE3 SIMD instructions.
- [
Neon
]- Optimized engine that takes advantage of the
AArch64
Neon SIMD instructions.
- Optimized engine that takes advantage of the
DefaultEngine
- Default engine which is used when no specific engine is given.
- Automatically selects best engine at runtime.
Modules§
- Lookup-tables used by
Engine
:s. - A collection of utility functions and helpers to facilitate the implementation of the
Engine
trait.
Structs§
- Optimized
Engine
using AVX2 instructions. Engine
that at runtime selects the best Engine.- Simple reference implementation of
Engine
. - Optimized
Engine
without SIMD. - Mutable reference to a shard array.
- Optimized
Engine
using SSSE3 instructions.
Constants§
- TODO
- Size of Galois field element
GfElement
in bits. GF_ORDER - 1
- Galois field order, i.e. number of elements.
- Galois field polynomial.
Traits§
- Trait for compute-intensive low-level algorithms needed for Reed-Solomon encoding/decoding.
Type Aliases§
- Galois field element.