| 141 | |
| 142 | template<typename B, typename Q, typename QD, tools::proto_max<Q> MAX1, tools::proto_max<QD> MAX2> |
| 143 | module::Decoder_SISO<B, Q>* |
| 144 | Decoder_RSC ::_build_siso_seq(const std::vector<std::vector<int>>& trellis, |
| 145 | std::ostream& stream, |
| 146 | const int n_ite, |
| 147 | module::Encoder<B>* /*encoder*/) const |
| 148 | { |
| 149 | if (this->type == "BCJR") |
| 150 | { |
| 151 | if (this->implem == "STD") |
| 152 | return new module::Decoder_RSC_BCJR_seq_std<B, Q, QD, MAX1, MAX2>(this->K, trellis, this->buffered); |
| 153 | if (this->implem == "GENERIC") |
| 154 | return new module::Decoder_RSC_BCJR_seq_generic_std<B, Q, QD, MAX1, MAX2>(this->K, trellis, this->buffered); |
| 155 | if (this->implem == "GENERIC_JSON") |
| 156 | return new module::Decoder_RSC_BCJR_seq_generic_std_json<B, Q, QD, MAX1, MAX2>( |
| 157 | this->K, trellis, n_ite, this->buffered, stream); |
| 158 | if (this->implem == "FAST") |
| 159 | return new module::Decoder_RSC_BCJR_seq_fast<B, Q, QD, MAX1, MAX2>(this->K, trellis, this->buffered); |
| 160 | if (this->implem == "VERY_FAST") |
| 161 | return new module::Decoder_RSC_BCJR_seq_very_fast<B, Q, QD, MAX1, MAX2>(this->K, trellis, this->buffered); |
| 162 | if (this->implem == "SCAN") |
| 163 | return new module::Decoder_RSC_BCJR_seq_scan<B, Q, QD>(this->K, trellis, this->buffered); |
| 164 | } |
| 165 | |
| 166 | throw spu::tools::cannot_allocate(__FILE__, __LINE__, __func__); |
| 167 | } |
| 168 | |
| 169 | template<typename B, typename Q, typename QD, tools::proto_max_i<Q> MAX> |
| 170 | module::Decoder_SISO<B, Q>* |
nothing calls this directly
no outgoing calls
no test coverage detected