# log {base}

### Description

`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 `base`

.

`log1p(x)`

computes log(1+x) accurately also for |x| << 1 (and less accurately when x is approximately -1).

`exp`

computes the exponential function.

`expm1(x)`

computes exp(x) - 1 accurately also for |x| << 1.

### Usage

log(x, base = exp(1)) logb(x, base = exp(1)) log10(x) log2(x) log1p(x) exp(x) expm1(x)

### Arguments

- x
- a numeric or complex vector.
- base
- a positive or complex number: the base with respect to which logarithms are computed. Defaults to e=
`exp(1)`

.

### Details

All except `logb`

are generic functions: methods can be defined for them individually or via the `Math`

group generic.

`log10`

and `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 `logb`

itself.

All except `log`

are primitive functions.

### Values

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 ` `

.

For complex inputs to the log functions, the value is a complex number with imaginary part in the range [-pi, pi]: which end of the range is used might be platform-specific.

### S4 methods

`exp`

, `expm1`

, `log`

, `log10`

, `log2`

and `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 `base`

can be passed to methods (but will not be used for method selection). On the other hand, if you only set a method for the `Math`

group generic then `base`

argument of `log`

will be ignored for your class.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) *The New S Language*. Wadsworth & Brooks/Cole. (for `log`

, `log10`

and `exp`

.)

Chambers, J. M. (1998) *Programming with Data. A Guide to the S Language*. Springer. (for `logb`

.)

### See Also

`Trig`

, `sqrt`

, `Arithmetic`

.

### Examples

Documentation reproduced from R 3.0.2. License: GPL-2.