|
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 binary BCJR forward-backward decoding. More...
#include <trellises.hpp>
Public Member Functions | |
| BCJR_Workspace (const Trellis &tr) | |
| Allocate metric arrays for tr. | |
| void | calculate_edge_costs (const Trellis &tr, const Vector< double > &llrs) |
| Set BCJR edge costs from binary LLRs. | |
Public Attributes | |
| std::vector< std::vector< double > > | alpha |
| Forward metrics by layer and vertex id. | |
| std::vector< std::vector< double > > | beta |
| Backward metrics by layer and vertex id. | |
| std::vector< std::vector< double > > | edge_costs |
| Edge cost for each segment and edge index. | |
| std::optional< std::variant< Vector< T >, Vector< double > > > | v |
| Optional received vector shown in TikZ output. | |
Static Public Attributes | |
| static constexpr bool | is_soft = true |
| BCJR uses floating-point soft metrics. | |
Workspace for binary BCJR forward-backward decoding.
Stores α and β metrics by layer and edge costs by segment. It is used by LinearCode<Fp<2>>::dec_BCJR.
Definition at line 240 of file trellises.hpp.
|
explicit |
Allocate metric arrays for tr.
| tr | Trellis whose layer and edge sizes define the workspace |
Definition at line 494 of file trellises.hpp.
| void CECCO::Trellis< T >::BCJR_Workspace::calculate_edge_costs | ( | const Trellis & | tr, |
| const Vector< double > & | llrs ) |
Set BCJR edge costs from binary LLRs.
| tr | Binary trellis whose edges define candidate bits |
| llrs | Log-likelihood ratios; length must equal the number of segments |
| std::invalid_argument | if llrs.get_n() != tr.E.size() |
Definition at line 506 of file trellises.hpp.
| std::vector<std::vector<double> > CECCO::Trellis< T >::BCJR_Workspace::alpha |
Forward metrics by layer and vertex id.
Definition at line 262 of file trellises.hpp.
| std::vector<std::vector<double> > CECCO::Trellis< T >::BCJR_Workspace::beta |
Backward metrics by layer and vertex id.
Definition at line 264 of file trellises.hpp.
| std::vector<std::vector<double> > CECCO::Trellis< T >::BCJR_Workspace::edge_costs |
Edge cost for each segment and edge index.
Definition at line 266 of file trellises.hpp.
|
staticconstexpr |
BCJR uses floating-point soft metrics.
Definition at line 242 of file trellises.hpp.
| std::optional<std::variant<Vector<T>, Vector<double> > > CECCO::Trellis< T >::BCJR_Workspace::v |
Optional received vector shown in TikZ output.
Definition at line 268 of file trellises.hpp.