Learn R Programming

DPQ (version 0.4-3)

log1mexp: Compute \(\mathrm{log}\)(1 - \(\mathrm{exp}\)(-a)) and \(\log(1 + \exp(x))\) Numerically Optimally

Description

Compute f(a) = log(1 - exp(-a)) quickly and numerically accurately.

log1mexp() is simple pure R code; log1mexpC() is an interface to R C API (Rmathlib) function.

log1pexpC() is an interface to R C API (Rmathlib) double function log1pexp() which computes \(\log(1 + \exp(x))\), accurately, notably for large \(x\), say, \(x > 720\).

Usage

log1mexp (x)
log1mexpC(x)
log1pexpC(x)

Arguments

x

numeric vector of positive values.

References

Martin M<U+00E4>chler (2012). Accurately Computing \(\log(1-\exp(-|a|))\); https://CRAN.R-project.org/package=Rmpfr/vignettes/log1mexp-note.pdf.

See Also

The log1mexp() function in CRAN package copula, and the corresponding vignette (in the ‘References’).

Examples

Run this code
# NOT RUN {
l1m.xy <- curve(log1mexp(x), -10, 10, n=1001)
stopifnot(with(l1m.xy, all.equal(y, log1mexpC(x))))
# }
# NOT RUN {
<!-- %% FIXME: add example for log1pexp() -->
# }

Run the code above in your browser using DataLab