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>
Loading...
Searching...
No Matches
CECCO::SubfieldOf Concept Reference

SUBFIELD āŠ† SUPERFIELD as constructed in this library (Iso paths included). More...

#include <field_concepts_traits.hpp>

Concept definition

template<typename SUPERFIELD, typename SUBFIELD>
SUBFIELD āŠ† SUPERFIELD as constructed in this library (Iso paths included).
constexpr bool is_subfield_of_v

Detailed Description

SUBFIELD āŠ† SUPERFIELD as constructed in this library (Iso paths included).

Template Parameters
SUPERFIELDLarger field
SUBFIELDCandidate smaller field

Walks the construction tower of SUPERFIELD; for Iso operands, every representation is inspected, so a subfield reachable through any of MAIN / OTHERS counts. Reflexive: SubfieldOf<F, F> is always true.

Warning
This is the construction tower, not the mathematical tower. A field that exists mathematically between SUBFIELD and SUPERFIELD but was never constructed (or never bridged by an Iso) is invisible. Construct an Iso over equivalent representations to merge towers.

Usage_Examples

using F2 = Fp<2>;
using F4_a = Ext<F2, {1, 1, 1}>;
using F4_b = Ext<F2, {1, 0, 1}>;
using F4_Iso = Iso<F4_a, F4_b>;
using F16 = Ext<F4_Iso, {2, 1, 1}>;
static_assert(SubfieldOf<F16, F4_Iso>); // direct construction
static_assert(SubfieldOf<F16, F4_a>); // via Iso: F4_a in F4_Iso āŠ† F16
static_assert(SubfieldOf<F16, F2>); // recursive descent
Extension field š”½_{q^m} ≅ B[x]/(f(x)), constructed from a base field and an irreducible monic modulus...
Definition fields.hpp:2221
Prime field š”½_p ≅ ℤ/pℤ
Definition fields.hpp:1647

Definition at line 402 of file field_concepts_traits.hpp.