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::DEMUX< E, S > Class Template Reference

Field demultiplexer — expand š”½_E elements into š”½_S coefficient vectors/matrices. More...

#include <blocks.hpp>

Inheritance diagram for CECCO::DEMUX< E, S >:
Inheritance graph

Public Member Functions

constexpr DEMUX ()=default
constexpr Vector< S > operator() (const E &in)
 Expand a single element into its subfield-coefficient vector.
Matrix< S > operator() (const Vector< E > &in)
 Expand a vector of elements into a subfield-coefficient matrix.

Detailed Description

template<FiniteFieldType E, FiniteFieldType S>
requires (SubfieldOf<E, S>)
class CECCO::DEMUX< E, S >

Field demultiplexer — expand š”½_E elements into š”½_S coefficient vectors/matrices.

Template Parameters
EExtension field
SSubfield of E (S āŠ† E)

Each E element decomposes into [E:S] coefficients over S via the polynomial basis of the extension. For a Vector<E> of length n, the resulting Matrix<S> has [E:S] rows and n columns; column j holds the coefficients of element j.

using F2 = Fp<2>;
using F4 = Ext<F2, {1, 1, 1}>; // š”½_4 = š”½_2[x]/(x² + x + 1)
Vector<F4> v = {F4(0), F4(1), F4(2), F4(3)};
Matrix<F2> M = v >> demux; // 2Ɨ4 matrix over š”½_2
Field demultiplexer — expand š”½_E elements into š”½_S coefficient vectors/matrices.
Definition blocks.hpp:860
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
Vector v = (vā‚€, v₁, …, vₙ₋₁) over a CECCO::ComponentType.
Definition vectors.hpp:115
See also
CECCO::MUX for the inverse
CECCO::Ext, CECCO::SubfieldOf

Definition at line 860 of file blocks.hpp.

Constructor & Destructor Documentation

◆ DEMUX()

template<FiniteFieldType E, FiniteFieldType S>
CECCO::DEMUX< E, S >::DEMUX ( )
constexprdefault

Member Function Documentation

◆ operator()() [1/2]

template<FiniteFieldType E, FiniteFieldType S>
Vector< S > CECCO::DEMUX< E, S >::operator() ( const E & in)
inlineconstexpr

Expand a single element into its subfield-coefficient vector.

Parameters
inExtension field element
Returns
Length-[E:S] vector of S coefficients

Definition at line 869 of file blocks.hpp.

◆ operator()() [2/2]

template<FiniteFieldType E, FiniteFieldType S>
Matrix< S > CECCO::DEMUX< E, S >::operator() ( const Vector< E > & in)

Expand a vector of elements into a subfield-coefficient matrix.

Parameters
inVector of n extension field elements
Returns
[E:S] Ɨ n matrix; column j holds the coefficients of in[j]

Definition at line 881 of file blocks.hpp.


The documentation for this class was generated from the following file: