MCPcopy Create free account
hub / github.com/aff3ct/aff3ct / _build_siso_seq

Method _build_siso_seq

src/Factory/Module/Decoder/RSC/Decoder_RSC.cpp:143–167  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141
142template<typename B, typename Q, typename QD, tools::proto_max<Q> MAX1, tools::proto_max<QD> MAX2>
143module::Decoder_SISO<B, Q>*
144Decoder_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
169template<typename B, typename Q, typename QD, tools::proto_max_i<Q> MAX>
170module::Decoder_SISO<B, Q>*

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected