| 11 | |
| 12 | template<typename B> |
| 13 | Encoder_polar<B>::Encoder_polar(const int& K, const int& N, const std::vector<bool>& frozen_bits) |
| 14 | : Encoder<B>(K, N) |
| 15 | , m((int)std::log2(N)) |
| 16 | , frozen_bits(frozen_bits) |
| 17 | , X_N_tmp(this->N) |
| 18 | { |
| 19 | const std::string name = "Encoder_polar"; |
| 20 | this->set_name(name); |
| 21 | for (auto& t : this->tasks) |
| 22 | t->set_replicability(true); |
| 23 | this->set_sys(false); |
| 24 | |
| 25 | if (this->N != (int)frozen_bits.size()) |
| 26 | { |
| 27 | std::stringstream message; |
| 28 | message << "'frozen_bits.size()' has to be equal to 'N' ('frozen_bits.size()' = " << frozen_bits.size() |
| 29 | << ", 'N' = " << N << ")."; |
| 30 | throw spu::tools::length_error(__FILE__, __LINE__, __func__, message.str()); |
| 31 | } |
| 32 | |
| 33 | this->set_frozen_bits(frozen_bits); |
| 34 | } |
| 35 | |
| 36 | template<typename B> |
| 37 | Encoder_polar<B>* |
nothing calls this directly
no test coverage detected