# log2f(3m) [opensolaris man page]

```log2(3M)						  Mathematical Library Functions						  log2(3M)

NAME
log2, log2f, log2l - compute base 2 logarithm functions

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

double log2(double x);

float log2f(float x);

long double log2l(long double x);

DESCRIPTION
These functions compute the base 2 logarithm of their argument x, log2(x).

RETURN VALUES
Upon successful completion, these functions return the base 2 logarithm of x.

If x is +-0, a pole error occurs and log2(), log2f(), and log2l() 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.

ERRORS
These functions will fail if:

Domain Error    The finite value of x is less than 0, or x is -Inf.

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

Pole Error      The value of x is 0.

If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then 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.

ATTRIBUTES
See attributes(5) for descriptions of the following attributes:

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

feclearexcept(3M), fetestexcept(3M), log(3M), math.h(3HEAD), attributes(5), standards(5)

SunOS 5.11							    12 Jul 2006 							  log2(3M)```

## Check Out this Related Man Page

```LOG2(P) 						     POSIX Programmer's Manual							   LOG2(P)

NAME
log2, log2f, log2l - compute base 2 logarithm functions

SYNOPSIS
#include <math.h>

double log2(double x);
float log2f(float x);
long double log2l(long double x);

DESCRIPTION
These functions shall compute the base 2 logarithm of their argument x, log_2(x).

An  application	wishing  to check for error situations should set errno to zero and call feclearexcept(FE_ALL_EXCEPT) before calling these
functions.  On return, if errno is non-zero or fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero,  an  error
has occurred.

RETURN VALUE
Upon successful completion, these functions shall return the base 2 logarithm of x.

If x is +-0, a pole error shall occur and log2(), log2f(), and log2l() shall 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 shall occur, and    either a NaN (if supported), or	an
implementation-defined value shall be returned.

If x is NaN, a NaN shall be returned.

If x is 1, +0 shall be returned.

If x is +Inf, x shall be returned.

ERRORS
These functions shall fail if:

Domain Error
The finite value of x is less than zero,	  or x is -Inf.

If the integer expression (math_errhandling & MATH_ERRNO) is non-zero, then errno shall	be  set  to  [EDOM].  If  the  integer	expression
(math_errhandling & MATH_ERREXCEPT) is non-zero, then the invalid floating-point exception shall be raised.

Pole Error
The value of x is zero.

If  the	integer  expression  (math_errhandling	&  MATH_ERRNO) is non-zero, then errno shall be set to [ERANGE]. If the integer expression
(math_errhandling & MATH_ERREXCEPT) is non-zero, then the divide-by-zero floating-point exception shall be raised.

The following sections are informative.

EXAMPLES
None.

APPLICATION USAGE
On error, the expressions (math_errhandling & MATH_ERRNO) and (math_errhandling & MATH_ERREXCEPT) are independent of  each  other,  but	at
least one of them must be non-zero.

RATIONALE
None.

FUTURE DIRECTIONS
None.