Logarithmic and Exponential Functions
[Auxiliary math functions]


Functions

double itpp::logb (double b, double x)
 Base-b logarithm.
int itpp::pow2i (int x)
 Calculate two to the power of x (2^x); x is integer.
double itpp::pow2 (double x)
 Calculate two to the power of x (2^x).
double itpp::pow10 (double x)
 Calculate ten to the power of x (10^x).
double itpp::dB (double x)
 Decibel of x (10*log10(x)).
double itpp::inv_dB (double x)
 Inverse of decibel of x.
int itpp::int2bits (int n)
 Calculate the number of bits needed to represent an inteager n.
int itpp::levels2bits (int n)
 Calculate the number of bits needed to represent n different values (levels).
double itpp::trunc_log (double x)
 Truncated natural logarithm function.
double itpp::trunc_exp (double x)
 Truncated exponential function.
double itpp::log_add (double log_a, double log_b)
 Safe substitute for log(exp(log_a) + exp(log_b)).
vec itpp::exp (const vec &x)
 Exp of the elements of a vector x.
cvec itpp::exp (const cvec &x)
 Exp of the elements of a complex vector x.
mat itpp::exp (const mat &m)
 Exp of the elements of a matrix m.
cmat itpp::exp (const cmat &m)
 Exp of the elements of a complex matrix m.
vec itpp::pow (const double x, const vec &y)
 Calculates x to the power of y (x^y).
mat itpp::pow (const double x, const mat &y)
 Calculates x to the power of y (x^y).
vec itpp::pow (const vec &x, const double y)
 Calculates x to the power of y (x^y).
mat itpp::pow (const mat &x, const double y)
 Calculates x to the power of y (x^y).
vec itpp::pow2 (const vec &x)
 Calculates two to the power of x (2^x).
mat itpp::pow2 (const mat &x)
 Calculates two to the power of x (2^x).
vec itpp::pow10 (const vec &x)
 Calculates ten to the power of x (10^x).
mat itpp::pow10 (const mat &x)
 Calculates ten to the power of x (10^x).
vec itpp::log (const vec &x)
 The natural logarithm of the elements.
mat itpp::log (const mat &x)
 The natural logarithm of the elements.
cvec itpp::log (const cvec &x)
 The natural logarithm of the elements.
cmat itpp::log (const cmat &x)
 The natural logarithm of the elements.
vec itpp::log2 (const vec &x)
 log-2 of the elements
mat itpp::log2 (const mat &x)
 log-2 of the elements
vec itpp::log10 (const vec &x)
 log-10 of the elements
mat itpp::log10 (const mat &x)
 log-10 of the elements
vec itpp::logb (double b, const vec &x)
 log-b of x
mat itpp::logb (double b, const mat &x)
 log-b of x
vec itpp::dB (const vec &x)
 Calculates 10*log10(x).
mat itpp::dB (const mat &x)
 Calculates 10*log10(x).
vec itpp::inv_dB (const vec &x)
 Calulates the inverse of dB, 10^(x/10).
mat itpp::inv_dB (const mat &x)
 Calculates the inverse of dB, 10^(x/10).
ivec itpp::int2bits (const ivec &v)
 Calculate the number of bits needed to represent each inteager in a vector.
ivec itpp::levels2bits (const ivec &v)
 Calculate the number of bits needed to represent a numer of levels saved in a vector.

Variables

const double itpp::log_double_max = std::log(std::numeric_limits<double>::max())
 Constant definition to speed up trunc_log() and trunc_exp().
const double itpp::log_double_min = std::log(std::numeric_limits<double>::min())
 Constant definition to speed up trunc_log(), trunc_exp() and log_add().

Function Documentation

double itpp::trunc_exp ( double  x  )  [inline]

Truncated exponential function.

This truncated function provides a solution in the case when the exponent function results in infinity. The function checks for an extreme value and use truncation (saturation) before calculating the result.

The truncated exponential function can be used when numerical instability problem occurs for a standard exp function.

References itpp::exp(), itpp::log_double_max, and itpp::max().

Referenced by itpp::MOG_generic::lhood_internal(), itpp::MOG_diag::lhood_internal(), itpp::Rec_Syst_Conv_Code::map_decode(), and itpp::MOG_diag_EM_sup::ml_update_params().

double itpp::trunc_log ( double  x  )  [inline]

Truncated natural logarithm function.

This truncated function provides a solution in the cases when the logarithm argument is less or equal to zero or infinity. The function checks for such extreme values and use some kind of truncation (saturation) before calculating the logarithm.

The truncated logarithm function can be used for calculation of log-likelihood in soft demodulators, when numerical instability problem might occur.

References itpp::log(), itpp::log_double_max, and itpp::log_double_min.

Referenced by itpp::Modulator< T >::demodulate_soft_bits(), itpp::PAM_c::demodulate_soft_bits(), and itpp::Rec_Syst_Conv_Code::map_decode().


Generated on Tue Jun 2 10:02:14 2009 for mixpp by  doxygen 1.5.8