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::Isomorphic Concept Reference

A and B are finite fields of the same size (and thus isomorphic). More...

#include <field_concepts_traits.hpp>

Concept definition

template<typename A, typename B>
concept Isomorphic = FiniteFieldType<A> && FiniteFieldType<B> && requires { requires A::get_size() == B::get_size(); }
Refines FieldType for finite fields š”½_{p^m}.
A and B are finite fields of the same size (and thus isomorphic).

Detailed Description

A and B are finite fields of the same size (and thus isomorphic).

Template Parameters
AFirst field type
BSecond field type

Two finite fields of the same cardinality are isomorphic. The check is on size only — the explicit isomorphism (a concrete field homomorphism) is computed by CECCO::Isomorphism.

Usage_Examples

using F2 = Fp<2>;
using F4_a = Ext<F2, {1, 1, 1}>; // š”½ā‚„ via x² + x + 1
using F4_b = Ext<F2, {1, 0, 1}>; // š”½ā‚„ via x² + 1
using F8 = Ext<F2, {1, 1, 0, 1}>;
using F64_a = Ext<F8, {7, 1, 1}>;
using F64_b = Ext<F4_a, {1, 2, 0, 1}>;
static_assert(Isomorphic<F64_a, F64_b>); // same size, different constructions
static_assert(Isomorphic<F4_a, F4_b>);
static_assert(!Isomorphic<F4_a, F8>); // 4 ≠ 8
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 263 of file field_concepts_traits.hpp.