LOG(3) BSD Programmer's Manual LOG(3)

**log**, **logf**, **log10**, **log10f**, **log1p**, **log1pf log2**, **log2f**, - logarithm func-
tions

libm

**#include <math.h>**
*double*
**log**(*double x*);
*float*
**logf**(*float x*);
*double*
**log10**(*double x*);
*float*
**log10f**(*float x*);
*double*
**log1p**(*double x*);
*float*
**log1pf**(*float x*);
*double*
**log2**(*double x*);
*float*
**log2f**(*float x*);

The following functions compute logarithms:
• The **log**() and **logf**() functions return the natural logarithm.
• The **log10**() and **log10f**() functions return the base 10 logarithm.
• The **log1p**() and **log1pf**() functions return the natural logarithm of
(1.0 + *x*) accurately even for very small values of *x*.
• The **log2**() and **log2f**() functions return the base 2 logarithm.

Upon successful completion, the functions return the logarithm of *x* as
descibed above. Otherwise the following may occur:
1. If *x* is *NaN*, all functions return *NaN*.
2. If *x* is positive infinity, all functions return *x*. If *x* is
negative infinity, all functions return *NaN*.
3. If *x* is +0.0 or -0.0, the **log**(), **log10**(), and **log2**() families
return either -HUGE_VAL, -HUGE_VALF, or -HUGE_VALL, whereas
the **log1p**() family returns *x*.
4. If *x* is +1.0, the **log**(), **log10**(), and **log2**() families return
+0.0. If *x* is -1.0, the **log1p**() family returns -HUGE_VAL, -
HUGE_VALF, or -HUGE_VALL.
In addition, on a VAX, *errno* is set to EDOM and the reserved operand is
returned by **log**() unless *x* > 0, by **log1p**() unless *x* > -1.

exp(3), ilogb(3), math(3)

The described functions conform to ISO/IEC 9899:1999 ("ISO C99").

The history of the logarithm functions dates back to Version 6 AT&T UNIX.
MirBSD #10-current September 13, 2011 1