|
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>
|
Functor representing the field isomorphism φ: A → B between two same-size finite fields. More...
#include <fields.hpp>
Public Member Functions | |
| Isomorphism () | |
| Construct (or retrieve from cache) the isomorphism map A → B. | |
| constexpr | Isomorphism (const std::vector< size_t > &iso) |
| Construct from a precomputed mapping table (iso[i] = φ(A(i))). | |
| constexpr B | operator() (const A &a) const |
Apply φ to a. | |
| constexpr Isomorphism< B, A > | inverse () const |
| Inverse isomorphism φ⁻¹: B → A. | |
Functor representing the field isomorphism φ: A → B between two same-size finite fields.
| A | Source finite field |
| B | Target finite field (Isomorphic<A, B>) |
The isomorphism is built deterministically: a Conway polynomial of the prime field gives generators α ∈ A and β ∈ B as common roots, and φ is extended linearly via a change-of-basis matrix over the prime subfield. The resulting table is stored in a single details::IsomorphismPair shared between Isomorphism<A, B> and Isomorphism<B, A>. It is a field homomorphism: φ(a + b) = φ(a) + φ(b), φ(a · b) = φ(a) · φ(b), φ(0) = 0, φ(1) = 1.
Definition at line 1562 of file fields.hpp.
| CECCO::Isomorphism< A, B >::Isomorphism | ( | ) |
Construct (or retrieve from cache) the isomorphism map A → B.
Definition at line 1597 of file fields.hpp.
|
inlineconstexpr |
Construct from a precomputed mapping table (iso[i] = φ(A(i))).
Definition at line 1574 of file fields.hpp.
|
constexpr |
Inverse isomorphism φ⁻¹: B → A.
Definition at line 1621 of file fields.hpp.
|
inlineconstexpr |
Apply φ to a.
Definition at line 1577 of file fields.hpp.