| 286 | |
| 287 | template<typename B, typename Q> |
| 288 | module::Decoder_SIHO<B, Q>* |
| 289 | Decoder_RSC ::build(const std::vector<std::vector<int>>& trellis, |
| 290 | std::ostream& stream, |
| 291 | const int n_ite, |
| 292 | const module::CRC<B>* crc, |
| 293 | module::Encoder<B>* encoder) const |
| 294 | { |
| 295 | try |
| 296 | { |
| 297 | return Decoder::build<B, Q>(encoder); |
| 298 | } |
| 299 | catch (spu::tools::cannot_allocate const&) |
| 300 | { |
| 301 | if (this->type == "VITERBI") |
| 302 | { |
| 303 | return build_viterbi<B, Q>(trellis); |
| 304 | } |
| 305 | if (crc != nullptr && this->type == "PLVA") |
| 306 | { |
| 307 | return build_viterbi_list<B, Q>(trellis, crc); |
| 308 | } |
| 309 | return build_siso<B, Q>(trellis, stream, n_ite); |
| 310 | } |
| 311 | } |
| 312 | |
| 313 | // ==================================================================================== explicit template instantiation |
| 314 | #include "Tools/types.h" |
nothing calls this directly
no outgoing calls
no test coverage detected