|
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>
|
Error control codes library. More...


Go to the source code of this file.
Classes | |
| class | CECCO::Code< T > |
| class | CECCO::EmptyCode< T > |
| class | CECCO::CodewordIterator< T > |
| class | CECCO::decoding_failure |
| class | CECCO::LinearCode< T > |
| class | CECCO::UniverseCode< T > |
| class | CECCO::ZeroCode< T > |
| class | CECCO::HammingCode< T > |
| class | CECCO::SimplexCode< T > |
| class | CECCO::RepetitionCode< T > |
| class | CECCO::SingleParityCheckCode< T > |
| class | CECCO::GolayCode< T > |
| class | CECCO::GRSCode< T > |
| class | CECCO::RSCode< T > |
| class | CECCO::CordaroWagnerCode |
| class | CECCO::LDCCode< BU, BV > |
| class | CECCO::RMCode |
| class | CECCO::SubfieldSubcode< B > |
| class | CECCO::AlternantCode< B > |
| class | CECCO::BCHCode< B > |
| class | CECCO::GoppaCode< SUPER > |
| class | CECCO::ExtendedCode< T, B > |
| class | CECCO::AugmentedCode< T, B > |
| class | CECCO::Enc< T > |
| class | CECCO::Dec< T > |
| class | CECCO::Encinv< T > |
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. | |
Macros | |
| #define | BOLD(x) |
Typedefs | |
| template<class B> | |
| using | CECCO::base_t = std::remove_cvref_t<B> |
| template<class C> | |
| using | CECCO::field_t = typename base_t<C>::FIELD |
Enumerations | |
| enum class | CECCO::method_t { CECCO::BD , CECCO::boosted_BD , CECCO::ML , CECCO::ML_soft , CECCO::Viterbi , CECCO::Viterbi_soft , CECCO::BCJR , CECCO::recursive , CECCO::Meggitt , CECCO::WBA , CECCO::BMA , CECCO::WBA_EE , CECCO::BMA_EE , CECCO::BD_EE , CECCO::ML_EE , CECCO::Viterbi_EE , CECCO::recursive_EE } |
Functions | |
| template<FiniteFieldType T> | |
| Polynomial< InfInt > | CECCO::MacWilliamsIdentity (const Polynomial< InfInt > &A, size_t n, size_t k) |
| std::ostream & | CECCO::showbasic (std::ostream &os) |
| std::ostream & | CECCO::showmost (std::ostream &os) |
| std::ostream & | CECCO::showall (std::ostream &os) |
| std::ostream & | CECCO::showspecial (std::ostream &os) |
| template<FieldType T> | |
| Matrix< T > | CECCO::details::LDC_G (const Matrix< T > &G_U, const Matrix< T > &G_V) |
| template<class B> | |
| CECCO::SubfieldSubcode (const B &) -> SubfieldSubcode< B > | |
| template<class B> | |
| CECCO::SubfieldSubcode (B &&) -> SubfieldSubcode< B > | |
| template<FieldType T> | |
| auto | CECCO::dual (const T &C) |
| bool | CECCO::details::validate (const std::vector< size_t > &v, std::size_t n) |
| template<class B> | |
| auto | CECCO::extend (B &&base, size_t i, const Vector< field_t< B > > &v) |
| template<class B> | |
| auto | CECCO::extend (B &&base) |
| template<FieldType T, class B> | |
| B | CECCO::unextend (const ExtendedCode< T, B > &C) |
| template<class B> | |
| auto | CECCO::augment (B &&base, size_t j, const Vector< field_t< B > > &w) |
| template<FieldType T, class B> | |
| B | CECCO::unaugment (const AugmentedCode< T, B > &C) |
| template<class B> | |
| auto | CECCO::lengthen (B &&base, size_t j, const Vector< field_t< B > > &w, size_t i, const Vector< field_t< B > > &v) |
| template<class B> | |
| auto | CECCO::lengthen (B &&base, size_t j, const Vector< field_t< B > > &w) |
| template<FieldType T, class D> | |
| auto | CECCO::unlengthen (const ExtendedCode< T, AugmentedCode< T, D > > &C) |
| template<FieldType T> | |
| LinearCode< T > | CECCO::puncture (const LinearCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::puncture (const EmptyCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::puncture (const ZeroCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::puncture (const UniverseCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::puncture (const RepetitionCode< T > &C, const std::vector< size_t > &v) |
| template<class C> | |
| auto | CECCO::puncture (C &&code, size_t i) |
| template<FieldType T> | |
| LinearCode< T > | CECCO::expurgate (const LinearCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::expurgate (const EmptyCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::expurgate (const ZeroCode< T > &C, const std::vector< size_t > &v) |
| template<FieldType T> | |
| auto | CECCO::expurgate (const RepetitionCode< T > &C, const std::vector< size_t > &v) |
| template<class C> | |
| auto | CECCO::expurgate (C &&code, size_t j) |
| template<class B> | |
| auto | CECCO::shorten (B &&base, size_t j, size_t i) |
| template<FieldType L, FieldType R> | |
| bool | CECCO::operator== (const LinearCode< L > &lhs, const LinearCode< R > &rhs) |
| template<FieldType L, FieldType R> | |
| bool | CECCO::operator!= (const LinearCode< L > &lhs, const LinearCode< R > &rhs) |
| template<FieldType L, FieldType R> | |
| bool | CECCO::identical (const LinearCode< L > &lhs, const LinearCode< R > &rhs) |
| template<FieldType L, FieldType R> | |
| bool | CECCO::equivalent (const LinearCode< L > &lhs, const LinearCode< R > &rhs) |
| template<FieldType T> | |
| std::ostream & | CECCO::operator<< (std::ostream &os, const Code< T > &rhs) |
Variables | |
| const int | CECCO::details::index = std::ios_base::xalloc() |
Error control codes library.
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.
Definition in file codes.hpp.