|
C(++)ECCO
C++ Error Control COding: a header-only library for ECC simulations and experiments, modeling complete coding systems across arbitrary finite fields and complex inter-field relationships - Christian Senger <senger@inue.uni-stuttgart.de>
|
2D lookup table for commutative binary operations, optionally compressed More...
#include <fields.hpp>

Public Member Functions | |
| constexpr LabelType & | operator() (size_t i, size_t j) |
| Mutable access (used during table construction). | |
| constexpr LabelType | operator() (size_t i, size_t j) const noexcept |
| Const access (used during field operations). | |
Public Attributes | |
| std::array< std::array< LabelType, FieldSize >,(FieldSize< CECCO_COMPRESS_LUTS_FROM_Q ? FieldSize :FieldSize/2+1)> | values {} |
| Backing storage; full square below the compression threshold, upper triangle above. | |
2D lookup table for commutative binary operations, optionally compressed
| LabelType | Label integer type |
| FieldSize | Number of field elements |
For FieldSize ≥ CECCO_COMPRESS_LUTS_FROM_Q, only the upper triangle is stored (saving ~50 % memory); the access operators normalise the index pair so callers don't see the difference.
Definition at line 838 of file fields.hpp.
|
inlineconstexpr |
Mutable access (used during table construction).
Definition at line 840 of file fields.hpp.
|
inlineconstexprnoexcept |
Const access (used during field operations).
Definition at line 854 of file fields.hpp.
| std::array<std::array<LabelType, FieldSize>, (FieldSize < CECCO_COMPRESS_LUTS_FROM_Q ? FieldSize : FieldSize / 2 + 1)> CECCO::details::Lut2D< LabelType, FieldSize >::values {} |
Backing storage; full square below the compression threshold, upper triangle above.
Definition at line 870 of file fields.hpp.