|
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>
|
Workspace for sum-product (belief propagation) decoding. More...
#include <graphs.hpp>
Public Member Functions | |
| BP_Workspace (const TannerGraph &g) | |
| Allocate message and belief arrays for g. | |
| void | calculate_intrinsic (const TannerGraph &g, const Matrix< double > &llrs) |
| Set intrinsic (channel) costs from symbol-level LLRs. | |
Public Attributes | |
| std::vector< std::vector< std::array< double, q > > > | m_vc |
| Variable-to-check messages by check and incident edge. | |
| std::vector< std::vector< std::array< double, q > > > | m_cv |
| Check-to-variable messages by check and incident edge. | |
| std::vector< std::array< double, q > > | intrinsic |
| Intrinsic (channel) cost per variable node and symbol. | |
| std::vector< std::array< double, q > > | posterior |
| Posterior belief per variable node and symbol. | |
| std::vector< std::vector< std::pair< size_t, size_t > > > | var_edges |
| Incident (check, edge) pairs for each variable node. | |
| std::optional< Matrix< double > > | v |
| Optional received LLR matrix shown in TikZ output. | |
Static Public Attributes | |
| static constexpr size_t | q = T::get_size() |
| Number of field symbols (message and belief vector length). | |
Workspace for sum-product (belief propagation) decoding.
Stores variable-to-check and check-to-variable messages, the intrinsic (channel) costs, and the running posterior beliefs, each a length-q array per node. It is used by LinearCode<T>::dec_BP.
Definition at line 964 of file graphs.hpp.
|
inlineexplicit |
Allocate message and belief arrays for g.
| g | Tanner graph whose variable- and check-node degrees define the workspace |
Definition at line 973 of file graphs.hpp.
|
inline |
Set intrinsic (channel) costs from symbol-level LLRs.
| g | Tanner graph providing the variable-node count |
| llrs | Symbol-level LLR matrix with q−1 rows and one column per variable node |
Intrinsic costs are the negated symbol costs of CECCO::details::symbol_costs_from_llrs.
Definition at line 991 of file graphs.hpp.
| std::vector<std::array<double, q> > CECCO::TannerGraph< T >::BP_Workspace::intrinsic |
Intrinsic (channel) cost per variable node and symbol.
Definition at line 1005 of file graphs.hpp.
| std::vector<std::vector<std::array<double, q> > > CECCO::TannerGraph< T >::BP_Workspace::m_cv |
Check-to-variable messages by check and incident edge.
Definition at line 1003 of file graphs.hpp.
| std::vector<std::vector<std::array<double, q> > > CECCO::TannerGraph< T >::BP_Workspace::m_vc |
Variable-to-check messages by check and incident edge.
Definition at line 1001 of file graphs.hpp.
| std::vector<std::array<double, q> > CECCO::TannerGraph< T >::BP_Workspace::posterior |
Posterior belief per variable node and symbol.
Definition at line 1007 of file graphs.hpp.
|
staticconstexpr |
Number of field symbols (message and belief vector length).
Definition at line 966 of file graphs.hpp.
| std::optional<Matrix<double> > CECCO::TannerGraph< T >::BP_Workspace::v |
Optional received LLR matrix shown in TikZ output.
Definition at line 1011 of file graphs.hpp.
| std::vector<std::vector<std::pair<size_t, size_t> > > CECCO::TannerGraph< T >::BP_Workspace::var_edges |
Incident (check, edge) pairs for each variable node.
Definition at line 1009 of file graphs.hpp.