Logarithmic and Exponential Functions
Base Module » Basic and Miscellaneous 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::pow2 (int x)
| Calculate two to the power of x (2^x) for large integer 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 integer `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. More...
double | itpp::trunc_exp (double x)
| Truncated exponential function. More...
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)
vec | itpp::pow2 (const ivec &x)
| Calculates two to the power of x (2^x) for integer x.
mat | itpp::pow2 (const mat &x)
| Calculates two to the power of x (2^x)
mat | itpp::pow2 (const imat &x)
| Calculates two to the power of x (2^x) for integer 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 integer 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()

## Detailed Description

## Function Documentation

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.

Definition at line 115 of file log_exp.h.

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().

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.

Definition at line 137 of file log_exp.h.

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

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

Generated on Thu Aug 20 2015 21:02:52 for IT++ by Doxygen 1.8.9.1