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::Code< T > Class Template Reference

#include <codes.hpp>

Inheritance diagram for CECCO::Code< T >:
Inheritance graph

Public Member Functions

 Code (size_t n) noexcept
 Code (const Code &other) noexcept
 Code (Code &&) noexcept=default
virtual ~Code ()=default
Code & operator= (const Code &other) noexcept
Code & operator= (Code &&) noexcept=default
size_t get_n () const noexcept
virtual void get_info (std::ostream &) const
virtual Vector< T > enc (const Vector< T > &) const
virtual Vector< T > encinv (const Vector< T > &) const
virtual Vector< T > dec_BD (const Vector< T > &) const
virtual Vector< T > dec_standard_array (const Vector< T > &) const
virtual Vector< T > dec_BD_standard_array (const Vector< T > &) const
virtual Vector< T > dec_boosted_BD_standard_array (const Vector< T > &) const
virtual Vector< T > dec_ML (const Vector< T > &) const
virtual Vector< T > dec_Viterbi (const Vector< T > &, const std::string &="") const
virtual std::vector< Vector< T > > dec_Viterbi_list (const Vector< T > &, size_t) const
virtual Vector< T > dec_recursive (const Vector< T > &) const
virtual Vector< T > dec_Meggitt (const Vector< T > &) const
virtual Vector< T > dec_WBA (const Vector< T > &) const
virtual Vector< T > dec_WBA_optimized (const Vector< T > &) const
virtual Vector< T > dec_BMA (const Vector< T > &) const
virtual std::vector< Vector< T > > dec_SA_list (const Vector< T > &, size_t=SA_LIST_SIZE) const
virtual std::vector< Vector< T > > dec_SA_list_optimized (const Vector< T > &, size_t=SA_LIST_SIZE) const
virtual std::vector< Vector< T > > dec_GSA_list (const Vector< T > &, size_t=GSA_MULTIPLICITY, size_t=GSA_LIST_SIZE) const
virtual std::vector< Vector< T > > dec_GSA_list_optimized (const Vector< T > &, size_t=GSA_MULTIPLICITY, size_t=GSA_LIST_SIZE) const
virtual Vector< T > dec_ML_soft (const Vector< double > &) const
virtual Vector< T > dec_ML_soft (const Matrix< double > &) const
virtual Vector< T > dec_Viterbi_soft (const Vector< double > &, const std::string &="") const
virtual Vector< T > dec_Viterbi_soft (const Matrix< double > &, const std::string &="") const
virtual std::vector< Vector< T > > dec_Viterbi_soft_list (const Vector< double > &, size_t) const
virtual std::vector< Vector< T > > dec_Viterbi_soft_list (const Matrix< double > &, size_t) const
virtual Vector< T > dec_BCJR (const Vector< double > &, Matrix< double > *=nullptr, const std::string &="") const
virtual Vector< T > dec_BCJR (const Matrix< double > &, Matrix< double > *=nullptr, const std::string &="") const
virtual Vector< T > dec_ssMAP (const Vector< double > &, Matrix< double > *=nullptr, const std::string &="") const
virtual Vector< T > dec_ssMAP (const Matrix< double > &, Matrix< double > *=nullptr, const std::string &="") const
virtual Vector< T > dec_BP (const Vector< double > &, size_t=BP_MAX_ITERATIONS, Matrix< double > *=nullptr, const std::string &="", size_t *=nullptr) const
virtual Vector< T > dec_BP (const Matrix< double > &, size_t=BP_MAX_ITERATIONS, Matrix< double > *=nullptr, const std::string &="", size_t *=nullptr) const
virtual Vector< T > dec_OSD (const Vector< double > &, size_t=OSD_ORDER) const
virtual Vector< T > dec_OSD (const Matrix< double > &, size_t=OSD_ORDER) const
virtual Vector< T > dec_LC_OSD (const Vector< double > &, size_t=LC_OSD_DELTA, size_t=LC_OSD_LIST_SIZE) const
virtual Vector< T > dec_LC_OSD (const Matrix< double > &, size_t=LC_OSD_DELTA, size_t=LC_OSD_LIST_SIZE) const
virtual std::vector< Vector< T > > dec_KVA_list (const Vector< double > &, size_t=KVA_STRENGTH, size_t=KVA_LIST_SIZE) const
virtual std::vector< Vector< T > > dec_KVA_list (const Matrix< double > &, size_t=KVA_STRENGTH, size_t=KVA_LIST_SIZE) const
virtual Vector< T > dec_BD_EE (const Vector< T > &) const
virtual Vector< T > dec_BD_standard_array_EE (const Vector< T > &) const
virtual Vector< T > dec_ML_EE (const Vector< T > &) const
virtual Vector< T > dec_Viterbi_EE (const Vector< T > &, const std::string &="") const
virtual Vector< T > dec_recursive_EE (const Vector< T > &) const
virtual Vector< T > dec_WBA_EE (const Vector< T > &) const
virtual Vector< T > dec_BMA_EE (const Vector< T > &) const
virtual Vector< T > dec_GMD (const Vector< double > &) const
virtual Vector< T > dec_GMD (const Matrix< double > &) const

Protected Member Functions

template<class BASE>
bool info_prelude (std::ostream &os) const
std::vector< size_t > erasure_positions (const Vector< T > &r) const

Protected Attributes

size_t n

Detailed Description

template<ComponentType T>
class CECCO::Code< T >

Definition at line 210 of file codes.hpp.

Constructor & Destructor Documentation

◆ Code() [1/3]

template<ComponentType T>
CECCO::Code< T >::Code ( size_t n)
inlinenoexcept

Definition at line 212 of file codes.hpp.

◆ Code() [2/3]

template<ComponentType T>
CECCO::Code< T >::Code ( const Code< T > & other)
inlinenoexcept

Definition at line 214 of file codes.hpp.

◆ Code() [3/3]

template<ComponentType T>
CECCO::Code< T >::Code ( Code< T > && )
defaultnoexcept

◆ ~Code()

template<ComponentType T>
virtual CECCO::Code< T >::~Code ( )
virtualdefault

Member Function Documentation

◆ dec_BCJR() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BCJR ( const Matrix< double > & ,
Matrix< double > * = nullptr,
const std::string & = "" ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 316 of file codes.hpp.

◆ dec_BCJR() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BCJR ( const Vector< double > & ,
Matrix< double > * = nullptr,
const std::string & = "" ) const
inlinevirtual

◆ dec_BD()

◆ dec_BD_EE()

◆ dec_BD_standard_array()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BD_standard_array ( const Vector< T > & ) const
inlinevirtual

◆ dec_BD_standard_array_EE()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BD_standard_array_EE ( const Vector< T > & ) const
inlinevirtual

◆ dec_BMA()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BMA ( const Vector< T > & ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 269 of file codes.hpp.

◆ dec_BMA_EE()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BMA_EE ( const Vector< T > & ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 374 of file codes.hpp.

◆ dec_boosted_BD_standard_array()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_boosted_BD_standard_array ( const Vector< T > & ) const
inlinevirtual

◆ dec_BP() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BP ( const Matrix< double > & ,
size_t = BP_MAX_ITERATIONS,
Matrix< double > * = nullptr,
const std::string & = "",
size_t * = nullptr ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 331 of file codes.hpp.

◆ dec_BP() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_BP ( const Vector< double > & ,
size_t = BP_MAX_ITERATIONS,
Matrix< double > * = nullptr,
const std::string & = "",
size_t * = nullptr ) const
inlinevirtual

◆ dec_GMD() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_GMD ( const Matrix< double > & ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 380 of file codes.hpp.

◆ dec_GMD() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_GMD ( const Vector< double > & ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 377 of file codes.hpp.

◆ dec_GSA_list()

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_GSA_list ( const Vector< T > & ,
size_t = GSA_MULTIPLICITY,
size_t = GSA_LIST_SIZE ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 278 of file codes.hpp.

◆ dec_GSA_list_optimized()

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_GSA_list_optimized ( const Vector< T > & ,
size_t = GSA_MULTIPLICITY,
size_t = GSA_LIST_SIZE ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 282 of file codes.hpp.

◆ dec_KVA_list() [1/2]

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_KVA_list ( const Matrix< double > & ,
size_t = KVA_STRENGTH,
size_t = KVA_LIST_SIZE ) const
inlinevirtual

◆ dec_KVA_list() [2/2]

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_KVA_list ( const Vector< double > & ,
size_t = KVA_STRENGTH,
size_t = KVA_LIST_SIZE ) const
inlinevirtual

◆ dec_LC_OSD() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_LC_OSD ( const Matrix< double > & ,
size_t = LC_OSD_DELTA,
size_t = LC_OSD_LIST_SIZE ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 344 of file codes.hpp.

◆ dec_LC_OSD() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_LC_OSD ( const Vector< double > & ,
size_t = LC_OSD_DELTA,
size_t = LC_OSD_LIST_SIZE ) const
inlinevirtual

◆ dec_Meggitt()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_Meggitt ( const Vector< T > & ) const
inlinevirtual

◆ dec_ML()

◆ dec_ML_EE()

◆ dec_ML_soft() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_ML_soft ( const Matrix< double > & ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >, and CECCO::SimplexCode< T >.

Definition at line 295 of file codes.hpp.

◆ dec_ML_soft() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_ML_soft ( const Vector< double > & ) const
inlinevirtual

◆ dec_OSD() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_OSD ( const Matrix< double > & ,
size_t = OSD_ORDER ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 338 of file codes.hpp.

◆ dec_OSD() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_OSD ( const Vector< double > & ,
size_t = OSD_ORDER ) const
inlinevirtual

◆ dec_recursive()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_recursive ( const Vector< T > & ) const
inlinevirtual

Definition at line 257 of file codes.hpp.

◆ dec_recursive_EE()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_recursive_EE ( const Vector< T > & ) const
inlinevirtual

Definition at line 368 of file codes.hpp.

◆ dec_SA_list()

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_SA_list ( const Vector< T > & ,
size_t = SA_LIST_SIZE ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 272 of file codes.hpp.

◆ dec_SA_list_optimized()

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_SA_list_optimized ( const Vector< T > & ,
size_t = SA_LIST_SIZE ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 275 of file codes.hpp.

◆ dec_ssMAP() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_ssMAP ( const Matrix< double > & ,
Matrix< double > * = nullptr,
const std::string & = "" ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 322 of file codes.hpp.

◆ dec_ssMAP() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_ssMAP ( const Vector< double > & ,
Matrix< double > * = nullptr,
const std::string & = "" ) const
inlinevirtual

◆ dec_standard_array()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_standard_array ( const Vector< T > & ) const
inlinevirtual

◆ dec_Viterbi()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_Viterbi ( const Vector< T > & ,
const std::string & = "" ) const
inlinevirtual

◆ dec_Viterbi_EE()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_Viterbi_EE ( const Vector< T > & ,
const std::string & = "" ) const
inlinevirtual

◆ dec_Viterbi_list()

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_Viterbi_list ( const Vector< T > & ,
size_t  ) const
inlinevirtual

◆ dec_Viterbi_soft() [1/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_Viterbi_soft ( const Matrix< double > & ,
const std::string & = "" ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 301 of file codes.hpp.

◆ dec_Viterbi_soft() [2/2]

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_Viterbi_soft ( const Vector< double > & ,
const std::string & = "" ) const
inlinevirtual

◆ dec_Viterbi_soft_list() [1/2]

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_Viterbi_soft_list ( const Matrix< double > & ,
size_t  ) const
inlinevirtual

Reimplemented in CECCO::LinearCode< T >.

Definition at line 307 of file codes.hpp.

◆ dec_Viterbi_soft_list() [2/2]

template<ComponentType T>
virtual std::vector< Vector< T > > CECCO::Code< T >::dec_Viterbi_soft_list ( const Vector< double > & ,
size_t  ) const
inlinevirtual

◆ dec_WBA()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_WBA ( const Vector< T > & ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 263 of file codes.hpp.

◆ dec_WBA_EE()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_WBA_EE ( const Vector< T > & ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 371 of file codes.hpp.

◆ dec_WBA_optimized()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::dec_WBA_optimized ( const Vector< T > & ) const
inlinevirtual

Reimplemented in CECCO::GRSCode< T >.

Definition at line 266 of file codes.hpp.

◆ enc()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::enc ( const Vector< T > & ) const
inlinevirtual

◆ encinv()

template<ComponentType T>
virtual Vector< T > CECCO::Code< T >::encinv ( const Vector< T > & ) const
inlinevirtual

◆ erasure_positions()

template<ComponentType T>
std::vector< size_t > CECCO::Code< T >::erasure_positions ( const Vector< T > & r) const
inlineprotected

Definition at line 401 of file codes.hpp.

◆ get_info()

◆ get_n()

template<ComponentType T>
size_t CECCO::Code< T >::get_n ( ) const
inlinenoexcept

Definition at line 229 of file codes.hpp.

◆ info_prelude()

template<ComponentType T>
template<class BASE>
bool CECCO::Code< T >::info_prelude ( std::ostream & os) const
inlineprotected

Definition at line 390 of file codes.hpp.

◆ operator=() [1/2]

template<ComponentType T>
Code & CECCO::Code< T >::operator= ( Code< T > && )
defaultnoexcept

◆ operator=() [2/2]

template<ComponentType T>
Code & CECCO::Code< T >::operator= ( const Code< T > & other)
inlinenoexcept

Definition at line 220 of file codes.hpp.

Member Data Documentation

◆ n

template<ComponentType T>
size_t CECCO::Code< T >::n
protected

Definition at line 399 of file codes.hpp.


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