12 #ifndef INCLUDED_FEC_POLAR_ENCODER_H
13 #define INCLUDED_FEC_POLAR_ENCODER_H
55 std::vector<int> frozen_bit_positions,
56 std::vector<uint8_t> frozen_bit_values,
57 bool is_packed =
false);
61 void generic_work(
void* in_buffer,
void* out_buffer)
override;
62 double rate()
override {
return (1.0 * get_input_size() / get_output_size()); };
63 int get_input_size()
override {
return num_info_bits() / (d_is_packed ? 8 : 1); };
69 return d_is_packed ?
"packed_bits" :
"none";
75 std::vector<int>& frozen_bit_positions,
76 std::vector<uint8_t>& frozen_bit_values,
81 volk::vector<unsigned char> make_prototype()
const;
84 const volk::vector<unsigned char>
85 d_frozen_bit_prototype;
87 void insert_packed_frozen_bits_and_reverse(
unsigned char* target,
88 const unsigned char* input)
const;
89 void insert_unpacked_bit_into_packed_array_at_position(
unsigned char* target,
90 const unsigned char bit,
92 void insert_packet_bit_into_packed_array_at_position(
unsigned char* target,
93 const unsigned char bit,
95 const int bit_pos)
const;
98 void encode_vector_packed(
unsigned char* target)
const;
99 void encode_vector_packed_subbyte(
unsigned char* target)
const;
100 void encode_packed_byte(
unsigned char* target)
const;
101 void encode_vector_packed_interbyte(
unsigned char* target)
const;