31    tpc_decoder(std::vector<int> row_polys,
 
   32                std::vector<int> col_polys,
 
   41    int get_history() 
override;
 
   42    float get_shift() 
override;
 
   43    int get_input_item_size() 
override;
 
   44    int get_output_item_size() 
override;
 
   45    const char* get_conversion();
 
   46    void generic_work(
const void* inBuffer, 
void* outbuffer) 
override;
 
   47    int get_output_size() 
override;
 
   48    int get_input_size() 
override;
 
   50    std::vector<int> d_rowpolys;
 
   51    std::vector<int> d_colpolys;
 
   64    std::vector<std::vector<int>> rowOutputs;
 
   65    std::vector<std::vector<int>> rowNextStates;
 
   67    std::vector<std::vector<int>> colOutputs;
 
   68    std::vector<std::vector<int>> colNextStates;
 
   87    std::vector<std::vector<float>> channel_llr;
 
   88    std::vector<std::vector<float>> Z;
 
   89    std::vector<float> extrinsic_info;
 
   90    std::vector<float> input_u_rows;
 
   91    std::vector<float> input_u_cols;
 
   92    std::vector<float> input_c_rows;
 
   93    std::vector<float> input_c_cols;
 
   94    std::vector<float> output_u_rows;
 
   95    std::vector<float> output_u_cols;
 
   96    std::vector<float> output_c_rows;
 
   97    std::vector<float> output_c_cols;
 
   99    uint32_t numInitLoadIter;
 
  100    int numInitRemaining;
 
  101    int output_c_col_idx;
 
  108    int mm_row, max_states_row, num_symbols_row;
 
  109    std::vector<std::vector<float>> beta_row;
 
  110    std::vector<float> alpha_prime_row;
 
  111    std::vector<float> alpha_row;
 
  112    std::vector<float> metric_c_row;
 
  113    std::vector<float> rec_array_row;
 
  114    std::vector<float> num_llr_c_row;
 
  115    std::vector<float> den_llr_c_row;
 
  116    void siso_decode_row();
 
  118    int mm_col, max_states_col, num_symbols_col;
 
  119    std::vector<std::vector<float>> beta_col;
 
  120    std::vector<float> alpha_prime_col;
 
  121    std::vector<float> alpha_col;
 
  122    std::vector<float> metric_c_col;
 
  123    std::vector<float> rec_array_col;
 
  124    std::vector<float> num_llr_c_col;
 
  125    std::vector<float> den_llr_c_col;
 
  126    void siso_decode_col();
 
  130    float gamma(
const std::vector<float> rec_array, 
const int symbol);
 
  132    float (tpc_decoder::*max_star)(
const float, 
const float);
 
  134    float linear_log_map(
const float delta1, 
const float delta2);
 
  135    float max_log_map(
const float delta1, 
const float delta2);
 
  136    float constant_log_map(
const float delta1, 
const float delta2);
 
  137    float log_map_lut_correction(
const float delta1, 
const float delta2);
 
  138    float log_map_cfunction_correction(
const float delta1, 
const float delta2);
 
  140    template <
typename T>
 
  141    static int sgn(T val);
 
  145                                      std::vector<int> col_poly,
 
  153    double rate()
 override { 
return (1.0 * get_output_size() / get_input_size()); }
 
 
static generic_decoder::sptr make(std::vector< int > row_poly, std::vector< int > col_poly, int krow, int kcol, int bval, int qval, int max_iter, int decoder_type)