| 92 | |
| 93 | template<typename B> |
| 94 | void |
| 95 | Encoder_turbo<B>::_encode(const B* U_K, B* X_N, const size_t frame_id) |
| 96 | { |
| 97 | pi->interleave(U_K - frame_id * this->K, U_K_i.data(), frame_id); |
| 98 | |
| 99 | enco_n->encode(U_K - frame_id * this->K, X_N_tmp.data(), frame_id); |
| 100 | |
| 101 | std::copy( |
| 102 | X_N_tmp.data() + frame_id * enco_n->get_N(), X_N_tmp.data() + frame_id * enco_n->get_N() + enco_n->get_N(), X_N); |
| 103 | |
| 104 | enco_i->encode(U_K_i.data(), X_N_tmp.data(), frame_id); |
| 105 | |
| 106 | std::copy(X_N_tmp.data() + frame_id * enco_i->get_N() + enco_i->get_K(), |
| 107 | X_N_tmp.data() + frame_id * enco_i->get_N() + enco_i->get_N(), |
| 108 | X_N + enco_n->get_N()); |
| 109 | } |
| 110 | |
| 111 | template<typename B> |
| 112 | bool |