LOG(3M) Mathematical Library Functions LOG(3M)

NAME


log, logf, logl - natural logarithm function

SYNOPSIS


c99 [ flag... ] file... -lm [ library... ]
#include <math.h>

double log(double x);


float logf(float x);


long double logl(long double x);


DESCRIPTION


These functions compute the natural logarithm of their argument x,
log(e)(x).

RETURN VALUES


Upon successful completion, log() returns the natural logarithm of x.


If x is +-0, a pole error occurs and log(), logf(), and logl() return
-HUGE_VAL, -HUGE_VALF, and -HUGE_VALL, respectively.


For finite values of x that are less than 0, or if x is -Inf, a domain
error occurs and a NaN is returned.


If x is NaN, a NaN is returned.


If x is 1, +0 is returned.


If x is +Inf, x is returned.


For exceptional cases, matherr(3M) tabulates the values to be returned by
log() as specified by SVID3 and XPG3.

ERRORS


These functions will fail if:

Domain Error
The finite value of x is negative, or x is -Inf.

If the integer expression (math_errhandling &
MATH_ERREXCEPT) is non-zero, the invalid floating-point
exception is raised.

The log() function sets errno to EDOM if the value of x
is negative.


Pole Error
The value of x is 0.

If the integer expression (math_errhandling &
MATH_ERREXCEPT) is non-zero, the divide-by-zero floating-
point exception is raised.


USAGE


An application wanting to check for exceptions should call
feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return,
if fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)
is non-zero, an exception has been raised. An application should either
examine the return value or check the floating point exception flags to
detect exceptions.


An application can also set errno to 0 before calling log(). On return,
if errno is non-zero, an error has occurred. The logf() and logl()
functions do not set errno.

ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+----------------------------+-----------------------------+
|Interface Stability | Standard |
+----------------------------+-----------------------------+
|MT-Level | MT-Safe |
+----------------------------+-----------------------------+

SEE ALSO


math.h(3HEAD), exp(3M), feclearexcept(3M), fetestexcept(3M), isnan(3M),
log10(3M), log1p(3M), matherr(3M), attributes(7), standards(7)

SunOS 5.11 July 12, 2006 LOG(3M)