Back to index

glibc  2.9
Defines | Functions | Variables
libm_cpu_defs.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define HI_SIGNIFICAND_LESS(X, HI)   ((X)->hi_significand < 0x ## HI)
#define f64abs(x)   ((x) < 0.0 ? -(x) : (x))
#define FP80_DECLARE()
#define FP80_SET()
#define FP80_RESET()
#define INVALID   (_zeroo * *((double*)&INF[0]))
#define PINF   *((double*)&INF[0])
#define NINF   -PINF
#define PINF_DZ   (_ponee/_zeroo)
#define X_TLOSS   1.41484755040568800000e+16
#define ERRNO_RANGE   errno = ERANGE
#define ERRNO_DOMAIN   errno = EDOM

Functions

void __libm_sincos_pi4 (double, double *, double *, int)
void __libm_y0y1 (double, double *, double *)
void __libm_j0j1 (double, double *, double *)
double __libm_j0 (double)
double __libm_j1 (double)
double __libm_jn (int, double)
double __libm_y0 (double)
double __libm_y1 (double)
double __libm_yn (int, double)
double __libm_copysign (double, double)
float __libm_copysignf (float, float)
long double __libm_copysignl (long double, long double)
double sqrt (double)
double fabs (double)
double log (double)
double log1p (double)
double sin (double)
double exp (double)
double modf (double, double *)
double asinh (double)
double acosh (double)
double atanh (double)
double tanh (double)
double erf (double)
double erfc (double)
double j0 (double)
double j1 (double)
double jn (int, double)
double y0 (double)
double y1 (double)
double yn (int, double)
float fabsf (float)
float asinhf (float)
float acoshf (float)
float atanhf (float)
float tanhf (float)
float erff (float)
float erfcf (float)
float j0f (float)
float j1f (float)
float jnf (int, float)
float y0f (float)
float y1f (float)
float ynf (int, float)
long double log1pl (long double)
long double logl (long double)
long double sqrtl (long double)
long double expl (long double)
long double fabsl (long double)

Variables

static const unsigned INF []
static const double _zeroo = 0.0
static const double _bigg = 1.0e300
static const double _ponee = 1.0
static const double _nonee = -1.0

Define Documentation

#define ERRNO_DOMAIN   errno = EDOM

Definition at line 146 of file libm_cpu_defs.h.

#define ERRNO_RANGE   errno = ERANGE

Definition at line 145 of file libm_cpu_defs.h.

#define f64abs (   x)    ((x) < 0.0 ? -(x) : (x))

Definition at line 117 of file libm_cpu_defs.h.

#define FP80_DECLARE ( )

Definition at line 119 of file libm_cpu_defs.h.

#define FP80_RESET ( )

Definition at line 121 of file libm_cpu_defs.h.

#define FP80_SET ( )

Definition at line 120 of file libm_cpu_defs.h.

#define HI_SIGNIFICAND_LESS (   X,
  HI 
)    ((X)->hi_significand < 0x ## HI)

Definition at line 116 of file libm_cpu_defs.h.

#define INVALID   (_zeroo * *((double*)&INF[0]))

Definition at line 137 of file libm_cpu_defs.h.

#define NINF   -PINF

Definition at line 139 of file libm_cpu_defs.h.

#define PINF   *((double*)&INF[0])

Definition at line 138 of file libm_cpu_defs.h.

#define PINF_DZ   (_ponee/_zeroo)

Definition at line 140 of file libm_cpu_defs.h.

#define X_TLOSS   1.41484755040568800000e+16

Definition at line 141 of file libm_cpu_defs.h.


Function Documentation

double __libm_copysign ( double  ,
double   
)
float __libm_copysignf ( float  ,
float   
)
long double __libm_copysignl ( long  double,
long  double 
)
double __libm_j0 ( double  )
void __libm_j0j1 ( double  ,
double *  ,
double *   
)
double __libm_j1 ( double  )
double __libm_jn ( int  ,
double   
)
void __libm_sincos_pi4 ( double  ,
double *  ,
double *  ,
int   
)
double __libm_y0 ( double  )
void __libm_y0y1 ( double  ,
double *  ,
double *   
)
double __libm_y1 ( double  )
double __libm_yn ( int  ,
double   
)
double acosh ( double  )

Here is the caller graph for this function:

float acoshf ( float  )
double asinh ( double  )

Here is the caller graph for this function:

float asinhf ( float  )
double atanh ( double  )

Here is the caller graph for this function:

float atanhf ( float  )
double erf ( double  )

Here is the caller graph for this function:

double erfc ( double  )

Here is the caller graph for this function:

float erfcf ( float  )
float erff ( float  )
double exp ( double  )
long double expl ( long  double)
double fabs ( double  )
float fabsf ( float  )

Here is the caller graph for this function:

long double fabsl ( long  double)
double j0 ( double  )

Definition at line 27 of file w_j0.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_j0(x);
#else
       double z = __ieee754_j0(x);
       if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z;
       if(fabs(x)>X_TLOSS) {
               return __kernel_standard(x,x,34); /* j0(|x|>X_TLOSS) */
       } else
           return z;
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

float j0f ( float  )

Definition at line 30 of file w_j0f.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_j0f(x);
#else
       float z = __ieee754_j0f(x);
       if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z;
       if(fabsf(x)>(float)X_TLOSS) {
              /* j0f(|x|>X_TLOSS) */
               return (float)__kernel_standard((double)x,(double)x,134);
       } else
           return z;
#endif
}

Here is the call graph for this function:

double j1 ( double  )

Definition at line 27 of file w_j1.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_j1(x);
#else
       double z;
       z = __ieee754_j1(x);
       if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z;
       if(fabs(x)>X_TLOSS) {
               return __kernel_standard(x,x,36); /* j1(|x|>X_TLOSS) */
       } else
           return z;
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

float j1f ( float  )

Definition at line 30 of file w_j1f.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_j1f(x);
#else
       float z;
       z = __ieee754_j1f(x);
       if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z;
       if(fabsf(x)>(float)X_TLOSS) {
              /* j1(|x|>X_TLOSS) */
               return (float)__kernel_standard((double)x,(double)x,136);
       } else
           return z;
#endif
}

Here is the call graph for this function:

double jn ( int  ,
double   
)

Definition at line 49 of file w_jn.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_jn(n,x);
#else
       double z;
       z = __ieee754_jn(n,x);
       if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z;
       if(fabs(x)>X_TLOSS) {
           return __kernel_standard((double)n,x,38); /* jn(|x|>X_TLOSS,n) */
       } else
           return z;
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

float jnf ( int  ,
float   
)

Definition at line 26 of file w_jnf.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_jnf(n,x);
#else
       float z;
       z = __ieee754_jnf(n,x);
       if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z;
       if(fabsf(x)>(float)X_TLOSS) {
           /* jn(|x|>X_TLOSS,n) */
           return (float)__kernel_standard((double)n,(double)x,138);
       } else
           return z;
#endif
}

Here is the call graph for this function:

double log ( double  )

Here is the caller graph for this function:

double log1p ( double  )

Here is the caller graph for this function:

long double log1pl ( long  double)
long double logl ( long  double)
double modf ( double  ,
double *   
)

Here is the caller graph for this function:

double sin ( double  )

Here is the caller graph for this function:

double sqrt ( double  )

Definition at line 267 of file support.c.

{
        double q,s,b,r;
        double t;
       double const zero=0.0;
        int m,n,i;
#if defined(vax)||defined(tahoe)
        int k=54;
#else  /* defined(vax)||defined(tahoe) */
        int k=51;
#endif /* defined(vax)||defined(tahoe) */

    /* sqrt(NaN) is NaN, sqrt(+-0) = +-0 */
        if(x!=x||x==zero) return(x);

    /* sqrt(negative) is invalid */
        if(x<zero) {
#if defined(vax)||defined(tahoe)
              return (infnan(EDOM));      /* NaN */
#else  /* defined(vax)||defined(tahoe) */
              return(zero/zero);
#endif /* defined(vax)||defined(tahoe) */
       }

    /* sqrt(INF) is INF */
        if(!finite(x)) return(x);

    /* scale x to [1,4) */
        n=logb(x);
        x=scalb(x,-n);
        if((m=logb(x))!=0) x=scalb(x,-m);       /* subnormal number */
        m += n;
        n = m/2;
        if((n+n)!=m) {x *= 2; m -=1; n=m/2;}

    /* generate sqrt(x) bit by bit (accumulating in q) */
            q=1.0; s=4.0; x -= 1.0; r=1;
            for(i=1;i<=k;i++) {
                t=s+1; x *= 4; r /= 2;
                if(t<=x) {
                    s=t+t+2, x -= t; q += r;}
                else
                    s *= 2;
                }

    /* generate the last bit and determine the final rounding */
            r/=2; x *= 4;
            if(x==zero) goto end; 100+r; /* trigger inexact flag */
            if(s<x) {
                q+=r; x -=s; s += 2; s *= 2; x *= 4;
                t = (x-s)-5;
                b=1.0+3*r/4; if(b==1.0) goto end; /* b==1 : Round-to-zero */
                b=1.0+r/4;   if(b>1.0) t=1;      /* b>1 : Round-to-(+INF) */
                if(t>=0) q+=r; }         /* else: Round-to-nearest */
            else {
                s *= 2; x *= 4;
                t = (x-s)-1;
                b=1.0+3*r/4; if(b==1.0) goto end;
                b=1.0+r/4;   if(b>1.0) t=1;
                if(t>=0) q+=r; }

end:        return(scalb(q,n));
}

Here is the call graph for this function:

long double sqrtl ( long  double)
double tanh ( double  )

Here is the caller graph for this function:

float tanhf ( float  )
double y0 ( double  )

Definition at line 50 of file w_j0.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_y0(x);
#else
       double z;
       z = __ieee754_y0(x);
       if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z;
        if(x <= 0.0){
                if(x==0.0)
                    /* d= -one/(x-x); */
                    return __kernel_standard(x,x,8);
                else
                    /* d = zero/(x-x); */
                    return __kernel_standard(x,x,9);
        }
       if(x>X_TLOSS) {
               return __kernel_standard(x,x,35); /* y0(x>X_TLOSS) */
       } else
           return z;
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

float y0f ( float  )

Definition at line 50 of file w_j0f.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_y0f(x);
#else
       float z;
       z = __ieee754_y0f(x);
       if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z;
        if(x <= (float)0.0){
                if(x==(float)0.0)
                    /* d= -one/(x-x); */
                    return (float)__kernel_standard((double)x,(double)x,108);
                else
                    /* d = zero/(x-x); */
                    return (float)__kernel_standard((double)x,(double)x,109);
        }
       if(x>(float)X_TLOSS) {
              /* y0(x>X_TLOSS) */
               return (float)__kernel_standard((double)x,(double)x,135);
       } else
           return z;
#endif
}

Here is the call graph for this function:

double y1 ( double  )

Definition at line 51 of file w_j1.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_y1(x);
#else
       double z;
       z = __ieee754_y1(x);
       if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z;
        if(x <= 0.0){
                if(x==0.0)
                    /* d= -one/(x-x); */
                    return __kernel_standard(x,x,10);
                else
                    /* d = zero/(x-x); */
                    return __kernel_standard(x,x,11);
        }
       if(x>X_TLOSS) {
               return __kernel_standard(x,x,37); /* y1(x>X_TLOSS) */
       } else
           return z;
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

float y1f ( float  )

Definition at line 51 of file w_j1f.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_y1f(x);
#else
       float z;
       z = __ieee754_y1f(x);
       if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z;
        if(x <= (float)0.0){
                if(x==(float)0.0)
                    /* d= -one/(x-x); */
                    return (float)__kernel_standard((double)x,(double)x,110);
                else
                    /* d = zero/(x-x); */
                    return (float)__kernel_standard((double)x,(double)x,111);
        }
       if(x>(float)X_TLOSS) {
              /* y1(x>X_TLOSS) */
               return (float)__kernel_standard((double)x,(double)x,137);
       } else
           return z;
#endif
}

Here is the call graph for this function:

double yn ( int  ,
double   
)

Definition at line 73 of file w_jn.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_yn(n,x);
#else
       double z;
       z = __ieee754_yn(n,x);
       if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z;
        if(x <= 0.0){
                if(x==0.0)
                    /* d= -one/(x-x); */
                    return __kernel_standard((double)n,x,12);
                else
                    /* d = zero/(x-x); */
                    return __kernel_standard((double)n,x,13);
        }
       if(x>X_TLOSS) {
           return __kernel_standard((double)n,x,39); /* yn(x>X_TLOSS,n) */
       } else
           return z;
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

float ynf ( int  ,
float   
)

Definition at line 47 of file w_jnf.c.

{
#ifdef _IEEE_LIBM
       return __ieee754_ynf(n,x);
#else
       float z;
       z = __ieee754_ynf(n,x);
       if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z;
        if(x <= (float)0.0){
                if(x==(float)0.0)
                    /* d= -one/(x-x); */
                    return (float)__kernel_standard((double)n,(double)x,112);
                else
                    /* d = zero/(x-x); */
                    return (float)__kernel_standard((double)n,(double)x,113);
        }
       if(x>(float)X_TLOSS) {
           /* yn(x>X_TLOSS,n) */
           return (float)__kernel_standard((double)n,(double)x,139);
       } else
           return z;
#endif
}

Here is the call graph for this function:


Variable Documentation

const double _bigg = 1.0e300 [static]

Definition at line 133 of file libm_cpu_defs.h.

const double _nonee = -1.0 [static]

Definition at line 135 of file libm_cpu_defs.h.

const double _ponee = 1.0 [static]

Definition at line 134 of file libm_cpu_defs.h.

const double _zeroo = 0.0 [static]

Definition at line 132 of file libm_cpu_defs.h.

const unsigned INF[] [static]
Initial value:
 {
    DOUBLE_HEX(7ff00000, 00000000),

}

Definition at line 127 of file libm_cpu_defs.h.