38 #include <itpp/itexports.h>
135 LLR_calc_unit(
short int Dint1,
short int Dint2,
short int Dint3);
165 void init_llr_tables(
short int Dint1 = 12,
short int Dint2 = 300,
166 short int Dint3 = 7);
169 QLLR to_qllr(
double l)
const;
172 QLLRvec to_qllr(
const vec &l)
const;
175 QLLRmat to_qllr(
const mat &l)
const;
178 double to_double(
QLLR l)
const;
181 vec to_double(
const QLLRvec &l)
const;
184 mat to_double(
const QLLRmat &l)
const;
220 ivec construct_logexp_table();
226 short int Dint1, Dint2, Dint3;
242 return static_cast<double>(l) / (1 << Dint1);
249 if (l > QLLR_MAX_double) {
253 if (l < -QLLR_MAX_double) {
264 int ind = x >> Dint3;
269 it_assert_debug(ind < Dint2,
"LLR_calc_unit::logexp(): internal error");
276 return logexp_table(ind);
296 return (maxab +
logexp(x));