|
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>
|
Tanner graph of a parity-check matrix. More...
#include <graphs.hpp>
Classes | |
| struct | BP_Workspace |
| Workspace for sum-product (belief propagation) decoding. More... | |
Public Member Functions | |
| TannerGraph (size_t n) | |
| Construct a Tanner graph with n variable nodes and no checks. | |
| void | add_edge (size_t check, uint32_t var_id, T value) |
| Add a check-to-variable edge check --value--> var_id. | |
| void | tikz_header (std::ostream &file) const |
| Write TikZ style definitions. | |
| void | tikz_picture (std::ostream &file, const BP_Workspace *ws) const |
| Write one TikZ picture of the Tanner graph. | |
| void | export_as_tikz (const std::string &filename, const BP_Workspace *ws) const |
| Export a standalone TikZ fragment with workspace beliefs. | |
| void | export_as_tikz (const std::string &filename) const |
| Export a standalone TikZ fragment without workspace beliefs. | |
Public Attributes | |
| size_t | n |
| Number of variable nodes. | |
| std::vector< std::vector< details::CheckEdge< T > > > | checks |
| Incident edges by check node; checks[i] lists the variables in parity check i. | |
Tanner graph of a parity-check matrix.
| T | Field type used for edge labels |
Contains n variable nodes and one node per parity-check equation. An edge (check, variable, value) represents a nonzero parity-check coefficient. BP_Workspace provides sum-product decoding state.
Definition at line 938 of file graphs.hpp.
|
inlineexplicit |
Construct a Tanner graph with n variable nodes and no checks.
Definition at line 940 of file graphs.hpp.
|
inline |
Add a check-to-variable edge check --value--> var_id.
| check | Check-node index; checks are created on demand |
| var_id | Incident variable-node id |
| value | Parity-check coefficient carried by the edge |
| std::invalid_argument | if var_id is not a variable node of this graph |
Definition at line 950 of file graphs.hpp.
|
inline |
Export a standalone TikZ fragment without workspace beliefs.
| filename | Output filename |
Available only for finite fields of size at most 64.
Definition at line 1108 of file graphs.hpp.
|
inline |
Export a standalone TikZ fragment with workspace beliefs.
| filename | Output filename |
| ws | Optional decoding workspace; if non-null, posterior beliefs and decisions are shown |
Available only for finite fields of size at most 64.
Definition at line 1091 of file graphs.hpp.
|
inline |
Write TikZ style definitions.
| file | Output stream |
Definition at line 1019 of file graphs.hpp.
|
inline |
Write one TikZ picture of the Tanner graph.
| file | Output stream |
| ws | Optional decoding workspace; if non-null, posterior beliefs and decisions are shown |
Available only for finite fields of size at most 64.
Definition at line 1031 of file graphs.hpp.
| std::vector<std::vector<details::CheckEdge<T> > > CECCO::TannerGraph< T >::checks |
Incident edges by check node; checks[i] lists the variables in parity check i.
Definition at line 1117 of file graphs.hpp.
| size_t CECCO::TannerGraph< T >::n |
Number of variable nodes.
Definition at line 1115 of file graphs.hpp.