Logarithms and Exponentials
log computes logarithms, by default natural logarithms,
log10 computes common (i.e., base 10) logarithms, and
log2 computes binary (i.e., base 2) logarithms.
The general form
log(x, base) computes logarithms with base
log1p(x) computes $log(1+x)$ accurately also for
$|x| << 1$.
exp computes the exponential function.
expm1(x) computes $exp(x) - 1$ accurately also for
$|x| << 1$.
log(x, base = exp(1)) logb(x, base = exp(1)) log10(x) log2(x)log1p(x)exp(x) expm1(x)
- a numeric or complex vector.
- a positive or complex number: the base with respect to which
logarithms are computed. Defaults to $e$=
logb are generic functions: methods can be defined
for them individually or via the
log2 are only convenience wrappers, but logs
to bases 10 and 2 (whether computed via
log or the wrappers)
will be computed more efficiently and accurately where supported by the OS.
Methods can be set for them individually (and otherwise methods for
log will be used).
logb is a wrapper for
log for compatibility with S. If
(S3 or S4) methods are set for
log they will be dispatched.
Do not set S4 methods on
log are primitive functions.
A vector of the same length as x containing the transformed
values. log(0) gives -Inf, and log(x) for
negative values of x is NaN. exp(-Inf) is 0.For complex inputs to the log functions, the value is a complex number
with imaginary part in the range [-\pi, \pi][-pi, pi]: which
end of the range is used might be platform-specific.
log1p are S4 generic and are members of the
Math group generic. Note that this means that the S4 generic for
log has a
signature with only one argument,
x, but that
be passed to methods (but will not be used for method selection). On
the other hand, if you only set a method for the
base argument of
log will be ignored for
expm1 may be taken from the operating system,
but if not available there then they are based on the Fortran subroutine
dlnrel by W. Fullerton of Los Alamos Scientific Laboratory (see
http://www.netlib.org/slatec/fnlib/dlnrel.f and (for small x) a
single Newton step for the solution of
log1p(y) = x
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
The New S Language.
Wadsworth & Brooks/Cole.
Chambers, J. M. (1998)
Programming with Data. A Guide to the S Language.
log(exp(3)) log10(1e7) # = 7 x <- 10^-(1+2*1:9) cbind(x, log(1+x), log1p(x), exp(x)-1, expm1(x))
x1 <- c(1.1, -2.3, 2.5, 0.5, -3.2, -4, 5.2, -2.2, -2.2, 3) y3 <- log2(x1) y3