log2
, log2f
–base 2 logarithm#include <math.h> double log2(double x); float log2f(float x);
Description
The log2
functions compute the base-2 logarithm of x. A domain error
occurs if the argument is less than zero. A range error occurs if the
argument is zero.
The Newlib implementations are not full, intrinisic calculations, but
rather are derivatives based on log
. (Accuracy might be slightly off from
a direct calculation.) In addition to functions, they are also implemented as
macros defined in math.h:
#define log2(x) (log (x) / _M_LN2) #define log2f(x) (logf (x) / (float) _M_LN2)
To use the functions instead, just undefine the macros first.
You can use the (non-ANSI) function matherr
to specify error
handling for these functions, indirectly through the respective log
function.
Returns
The log2
functions return
log base-2(
x)
on success.
When x is zero, the
returned value is -HUGE_VAL
and errno
is set to ERANGE
.
When x is negative, the returned value is NaN (not a number) and
errno
is set to EDOM
. You can control the error behavior via
matherr
.
Portability
C99, POSIX, System V Interface Definition (Issue 6).