Back to index

glibc  2.9
Functions | Variables
e_atanhl.c File Reference
#include "math.h"
#include "math_private.h"

Go to the source code of this file.

Functions

long double __ieee754_atanhl (long double x)

Variables

static long double one = 1.0L
static long double huge = 1e4900L
static double long zero = 0.0L

Function Documentation

long double __ieee754_atanhl ( long double  x)

Definition at line 57 of file e_atanhl.c.

{
       long double t;
       u_int32_t jx, ix;
       ieee854_long_double_shape_type u;

       u.value = x;
       jx = u.parts32.w0;
       ix = jx & 0x7fffffff;
       u.parts32.w0 = ix;
       if (ix >= 0x3fff0000) /* |x| >= 1.0 or infinity or NaN */
         {
           if (u.value == one)
             return x/zero;
           else
             return (x-x)/(x-x);
         }
       if(ix<0x3fc60000 && (huge+x)>zero) return x;     /* x < 2^-57 */

       if(ix<0x3ffe0000) {         /* x < 0.5 */
           t = u.value+u.value;
           t = 0.5*__log1pl(t+t*u.value/(one-u.value));
       } else
           t = 0.5*__log1pl((u.value+u.value)/(one-u.value));
       if(jx & 0x80000000) return -t; else return t;
}

Here is the call graph for this function:


Variable Documentation

long double huge = 1e4900L [static]

Definition at line 45 of file e_atanhl.c.

long double one = 1.0L [static]

Definition at line 45 of file e_atanhl.c.

double long zero = 0.0L [static]

Definition at line 51 of file e_atanhl.c.