| 129 | |
| 130 | template<typename B, typename R> |
| 131 | int |
| 132 | Decoder_LDPC_bit_flipping<B, R>::_decode_siso(const R* Y_N1, int8_t* CWD, R* Y_N2, const size_t frame_id) |
| 133 | { |
| 134 | // actual decoding |
| 135 | auto synd = this->BF_decode(Y_N1, frame_id); |
| 136 | |
| 137 | // prepare for next round by processing extrinsic information |
| 138 | for (auto i = 0; i < this->N; i++) |
| 139 | Y_N2[i] = this->Lp_N[i] - Y_N1[i]; |
| 140 | |
| 141 | // saturate<R>(Y_N2, (R)-C_to_V_max, (R)C_to_V_max); |
| 142 | |
| 143 | CWD[0] = (int8_t)synd; |
| 144 | return !synd; |
| 145 | } |
| 146 | |
| 147 | template<typename B, typename R> |
| 148 | int |