SDL  2.0
e_log10.c File Reference
#include "math_libm.h"
#include "math_private.h"
+ Include dependency graph for e_log10.c:

Go to the source code of this file.

Functions

double attribute_hidden __ieee754_log10 (double x)

Variables

static const double two54 = 1.80143985094819840000e+16
static const double ivln10 = 4.34294481903251816668e-01
static const double log10_2hi = 3.01029995663611771306e-01
static const double log10_2lo = 3.69423907715893078616e-13
static const double zero = 0.0

Function Documentation

double attribute_hidden __ieee754_log10 ( double  x)

Definition at line 61 of file e_log10.c.

References __ieee754_log, EXTRACT_WORDS, GET_HIGH_WORD, i, ivln10, k, log10_2hi, log10_2lo, SET_HIGH_WORD, two54, and zero.

{
double y,z;
int32_t i,k,hx;
EXTRACT_WORDS(hx,lx,x);
k=0;
if (hx < 0x00100000) { /* x < 2**-1022 */
if (((hx&0x7fffffff)|lx)==0)
return -two54/zero; /* log(+-0)=-inf */
if (hx<0) return (x-x)/zero; /* log(-#) = NaN */
k -= 54; x *= two54; /* subnormal number, scale up x */
}
if (hx >= 0x7ff00000) return x+x;
k += (hx>>20)-1023;
i = ((u_int32_t)k&0x80000000)>>31;
hx = (hx&0x000fffff)|((0x3ff-i)<<20);
y = (double)(k+i);
return z+y*log10_2hi;
}

Variable Documentation

const double ivln10 = 4.34294481903251816668e-01
static

Definition at line 55 of file e_log10.c.

Referenced by __ieee754_log10().

const double log10_2hi = 3.01029995663611771306e-01
static

Definition at line 56 of file e_log10.c.

Referenced by __ieee754_log10().

const double log10_2lo = 3.69423907715893078616e-13
static

Definition at line 57 of file e_log10.c.

Referenced by __ieee754_log10().

const double two54 = 1.80143985094819840000e+16
static

Definition at line 54 of file e_log10.c.

Referenced by __ieee754_log10().

const double zero = 0.0
static

Definition at line 59 of file e_log10.c.

Referenced by __ieee754_log10().