|
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>
|
| NCECCO | Provides a framework for error correcting codes |
| Ndetails | Contains implementation details not to be exposed to the user. Functions and classes here may change without notice |
| CBlockProcessor | CRTP base providing scalar, vector, and matrix block operations |
| Cverbosity_guard | Restores the stream's verbosity level on scope exit (used when printing info for codes constructed from other codes) |
| Cis_polynomial | Detect whether T is a Polynomial specialization |
| Cis_polynomial< Polynomial< C > > | Specialization of is_polynomial for Polynomial<C> |
| Ccoefficient_of | Coefficient type of a Polynomial; identity for all other types |
| Ccoefficient_of< Polynomial< C > > | Specialization of coefficient_of for Polynomial<C> |
| Cdegree_over_prime | Total extension degree of T over its prime field |
| Cdegree_over_prime< Fp< p > > | |
| Cdegree_over_prime< Ext< B, modulus, mode > > | |
| Cdegree_over_prime< Iso< MAIN, OTHERS... > > | |
| Cis_subfield_of | Construction-based subfield test: SUBFIELD reachable by descending SUPERFIELD's tower |
| Cis_subfield_of< Fp< p >, Fp< p > > | |
| Cis_subfield_of< Ext< B, modulus, mode >, SUB > | |
| Cis_subfield_of< Ext< B, modulus, mode >, Ext< B, modulus, mode > > | |
| Cis_subfield_of< Ext< B_SUP, modulus_SUP, mode_SUP >, Ext< B_SUB, modulus_SUB, mode_SUB > > | |
| Cis_subfield_of< Iso< MAIN, OTHERS... >, SUB > | |
| Cis_subfield_of< Iso< MAIN, OTHERS... >, Iso< MAIN, OTHERS... > > | |
| Cis_subfield_of< Iso< SUP_MAIN, SUP_OTHERS... >, Iso< SUB_MAIN, SUB_OTHERS... > > | |
| Ctype_list | Compile-time type list utility for subfield calculations |
| Cconcat | Concatenation of type_lists (duplicates preserved) |
| Cconcat<> | |
| Cconcat< type_list< Types... > > | |
| Cconcat< type_list< Types1... >, type_list< Types2... >, Rest... > | |
| Ccontains | Check if a type exists in a type_list |
| Ccontains< T, type_list< Types... > > | |
| Cunion_type_lists | Union of two type_lists (removes duplicates) |
| Cunion_type_lists< type_list< Types1... >, type_list< Types2... > > | |
| Cintersect_type_lists | Intersection of two type_lists |
| Cintersect_type_lists< type_list< Types1... >, type_list< Types2... > > | |
| Clargest_field_in_list | Find the largest field (by get_size()) in a type_list |
| Clargest_field_in_list< type_list< T > > | |
| Clargest_field_in_list< type_list< T1, T2, Rest... > > | |
| Ccollect_subfields | All subfields of F (including F itself), as a type_list |
| Ccollect_subfields< Fp< p > > | |
| Ccollect_subfields< Ext< B, modulus, mode > > | |
| Cunion_all_subfields | |
| Cunion_all_subfields<> | |
| Cunion_all_subfields< First, Rest... > | |
| Ccollect_subfields< Iso< MAIN, OTHERS... > > | |
| Ciso_info | Detect whether T is an Iso and expose its components |
| Ciso_info< Iso< MAIN, OTHERS... > > | Specialization of iso_info for Iso<MAIN, OTHERS...> |
| Clargest_common_subfield | Largest field that appears as a subfield of both F and G |
| CNonCopyable | Mixin that deletes the copy operations and defaults the move operations |
| CBase | Tag base for the CRTP-protection idiom |
| CField | CRTP base documenting the interface every field type must provide |
| CSignedLabel | |
| CLut1D | 1D lookup table for unary field operations (negation, inversion, order) |
| CLut2D | 2D lookup table for commutative binary operations, optionally compressed |
| CLut2Dcoeff | Lookup table mapping each extension-field label to its base-field coefficient vector |
| CLutHolderNoProvider | Holds a LUT generated by F() (no dependencies); selects compile-time or lazy storage |
| CLutHolderNoProvider< LutType, F, LutMode::CompileTime > | CompileTime specialisation: table is a constexpr static member |
| CLutHolderNoProvider< LutType, F, LutMode::RunTime > | RunTime specialisation: thread-safe lazy initialisation on first access |
| CLutHolder | Holds a LUT generated by F(P); P provides a dependency table |
| CLutHolder< LutType, ProviderLutType, P, F, LutMode::CompileTime > | CompileTime specialisation: table baked into the binary |
| CLutHolder< LutType, ProviderLutType, P, F, LutMode::RunTime > | RunTime specialisation: thread-safe lazy initialisation, dependency resolved on first access |
| CIsomorphismPair | Shared static storage of the forward and reverse maps for the isomorphism A ↔ B |
| CVertex | Vertex in one trellis layer |
| CEdge | Edge between two adjacent trellis layers |
| CCheckEdge | Edge from a check node to a variable node in a Tanner graph |
| CCacheEntry | Cache entry specification |
| CCache | Heterogeneous cache indexed by entry ID |
| COnceCache | Thread-safe single-value cache |
| CSDMEC | Symmetric errors-and-erasures channel over a finite field |
| CSDMC | Symmetric Discrete Memoryless Channel: errors only, no erasures |
| CBEC | Binary Erasure Channel: symbols are received correctly or marked erased |
| CBAC | Binary Asymmetric Channel (Z-channel): 0 is preserved; 1 flips to 0 with probability p |
| CNRZMapper | Non-Return-to-Zero (NRZ) mapper for binary modulation |
| CBPSKMapper | Binary Phase Shift Keying mapper: NRZMapper with a = 0, b = 2 |
| CAWGN | Additive White Gaussian Noise channel for complex-valued symbols |
| CBI_AWGN | Binary-Input AWGN: fused NRZMapper + AWGN block |
| CNRZDemapper | Non-Return-to-Zero (NRZ) hard-decision demapper |
| CBPSKDemapper | BPSK hard-decision demapper: NRZDemapper with threshold 0 |
| CLLRCalculator | Compute symbol-level log-likelihood ratios |
| CDEMUX | Expand extension-field elements into subfield coordinates |
| CMUX | Field multiplexer: reconstruct 𝔽_E elements from 𝔽_S coefficients |
| CCode | |
| CEmptyCode | |
| CLinearCode | |
| CUniverseCode | |
| CZeroCode | |
| CSimplexCode | |
| CSingleParityCheckCode | |
| CExtendedCode | |
| CCodewordIterator | |
| Cdecoding_failure | |
| CHammingCode | |
| CRepetitionCode | |
| CGolayCode | |
| CGRSCode | |
| CRSCode | |
| CCordaroWagnerCode | |
| CConvolutionalCode | |
| CLDCCode | |
| CRMCode | |
| CSubfieldSubcode | |
| CAlternantCode | |
| CBCHCode | |
| CGoppaCode | |
| CAugmentedCode | |
| CEnc | |
| CDec | |
| CDec_list | |
| CListProcessor | |
| CEncinv | |
| CRationals | Field of rational numbers ℚ = { p/q : p, q ∈ ℤ, q ≠ 0 } with selectable precision |
| CPolynomial | Univariate polynomial p(x) = a₀ + a₁x + … + aₙxⁿ over a CECCO::CoefficientType |
| CFp | Prime field 𝔽_p ≅ ℤ/pℤ |
| CExt | Extension field 𝔽_{q^m} ≅ B[x]/(f(x)), constructed from a base field and an irreducible monic modulus polynomial |
| CIso | Single logical field unifying several pairwise-isomorphic representations |
| CVector | Vector v = (v₀, v₁, …, vₙ₋₁) over a CECCO::ComponentType |
| CMatrix | Dense m × n matrix over a CECCO::ComponentType |
| CEmbedding | Functor representing the field embedding φ: SUBFIELD → SUPERFIELD, with reverse lookup |
| CIsomorphism | Functor representing the field isomorphism φ: A → B between two same-size finite fields |
| CTrellis | Layered trellis with field-labelled edges |
| CViterbi_Workspace | Workspace for Viterbi decoding on this trellis |
| CListViterbi_Workspace | Workspace for list-output Viterbi decoding on this trellis |
| CBCJR_Workspace | Workspace for BCJR forward-backward decoding |
| CTannerGraph | Tanner graph of a parity-check matrix |
| CBP_Workspace | Workspace for sum-product (belief propagation) decoding |
| CRNG | Thread-local random number generator with shared seeding policy |
| CSierpinskiTriangle | Sierpinski triangle (Pascal's triangle modulo p) |
| CInfInt | |
| CInfIntException | |
| CInfIntHasher |