|
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>
|
Concepts, traits, and type utilities for finite field arithmetic. More...


Go to the source code of this file.
Namespaces | |
| namespace | CECCO |
| Provides a framework for error correcting codes. | |
| namespace | CECCO::details |
| Contains implementation details not to be exposed to the user. Functions and classes here may change without notice. | |
Concepts | |
| concept | CECCO::FieldType |
| Concept for field types: full algebraic interface. | |
| concept | CECCO::FiniteFieldType |
| Refines FieldType for finite fields 𝔽_{p^m}. | |
| concept | CECCO::SignedIntType |
Standard signed integers or InfInt for arbitrary precision. | |
| concept | CECCO::ReliablyComparableType |
| Types whose operator== reflects mathematical equality. | |
| concept | CECCO::ComponentType |
| Admissible component type for CECCO::Vector, CECCO::Polynomial, CECCO::Matrix. | |
| concept | CECCO::BelongsTo |
| T is identical to at least one of Types.... | |
| concept | CECCO::Isomorphic |
| A and B are finite fields of the same size (and thus isomorphic). | |
| concept | CECCO::SubfieldOf |
| SUBFIELD ⊆ SUPERFIELD as constructed in this library (Iso paths included). | |
| concept | CECCO::ExtensionOf |
| Inverse of SubfieldOf: ExtensionOf<S, E> iff SubfieldOf<E, S>. | |
Macros | |
| #define | MOD std::array |
| Alias for std::array, used to spell modulus polynomials in CECCO::Ext. | |
Typedefs | |
| template<typename List1, typename List2> | |
| using | CECCO::details::union_type_lists_t = typename union_type_lists<List1, List2>::type |
| template<typename List1, typename List2> | |
| using | CECCO::details::intersect_type_lists_t = typename intersect_type_lists<List1, List2>::type |
| template<typename List> | |
| using | CECCO::details::largest_field_in_list_t = typename largest_field_in_list<List>::type |
| template<typename F> | |
| using | CECCO::details::collect_subfields_t = typename collect_subfields<F>::type |
| template<typename F, typename G> | |
| using | CECCO::details::largest_common_subfield_t = typename largest_common_subfield<F, G>::type |
Enumerations | |
| enum class | CECCO::LutMode { CECCO::CompileTime , CECCO::RunTime } |
| LUT generation mode for field operations. More... | |
Functions | |
| template<typename... Types> | |
| constexpr bool | CECCO::details::pairwise_distinct () |
| True iff all types in the pack are pairwise distinct. | |
Variables | |
| template<FiniteFieldType T> | |
| constexpr size_t | CECCO::details::degree_over_prime_v = degree_over_prime<T>::value |
| template<FiniteFieldType SUPER, FiniteFieldType SUB> | |
| constexpr bool | CECCO::details::is_subfield_of_v = is_subfield_of<SUPER, SUB>::value |
| template<typename T, typename List> | |
| constexpr bool | CECCO::details::contains_v = contains<T, List>::value |
| template<typename T, typename... Types> | |
| constexpr bool | CECCO::details::is_distinct_from_all = (!std::is_same_v<T, Types> && ...) |
| True iff T is not the same as any of Types.... | |
Concepts, traits, and type utilities for finite field arithmetic.
Licensed for noncommercial use only, including academic teaching, research, and personal non-profit purposes. Commercial use is prohibited without a separate commercial license. See the LICENSE file in the repository root for full terms and how to request a commercial license.
Conceptual foundation for the finite field arithmetic library: C++20 concepts and traits that constrain field types and let cross-field operations decide compatibility at compile time.
Concepts visible to library users: CECCO::FieldType, CECCO::FiniteFieldType, CECCO::SubfieldOf / CECCO::ExtensionOf, CECCO::Isomorphic, CECCO::ComponentType (the umbrella for CECCO::Vector / CECCO::Polynomial / CECCO::Matrix component types), CECCO::ReliablyComparableType, CECCO::SignedIntType.
Internals (in CECCO::details): metafunctions that compute field-tower relationships (is_subfield_of, collect_subfields, largest_common_subfield_t) and iso_info for Iso introspection.
Definition in file field_concepts_traits.hpp.
| #define MOD std::array |
Alias for std::array, used to spell modulus polynomials in CECCO::Ext.
Lets Ext<F2, {1, 1, 1}> deduce the array length from the brace-initialiser instead of requiring std::array<int, 3>{…}.
Definition at line 223 of file field_concepts_traits.hpp.