Back to index

glibc  2.9
Functions | Variables
s_asinhl.c File Reference
#include "math.h"
#include "math_private.h"
#include <math_ldbl_opt.h>

Go to the source code of this file.

Functions

long double __asinhl (long double x)
 long_double_symbol (libm, __asinhl, asinhl)

Variables

static long double one = 1.00000000000000000000e+00L
static long double ln2 = 0.6931471805599453094172321214581766L
static long double huge = 1.00000000000000000000e+300L

Function Documentation

long double __asinhl ( long double  x)

Definition at line 44 of file s_asinhl.c.

{
       long double t,w;
       int64_t hx,ix;
       GET_LDOUBLE_MSW64(hx,x);
       ix = hx&0x7fffffffffffffffLL;
       if(ix>=0x7ff0000000000000LL) return x+x;  /* x is inf or NaN */
       if(ix< 0x3e20000000000000LL) {     /* |x|<2**-29 */
           if(huge+x>one) return x;       /* return x inexact except 0 */
       }
       if(ix>0x41b0000000000000LL) {      /* |x| > 2**28 */
           w = __ieee754_logl(fabs(x))+ln2;
       } else if (ix>0x4000000000000000LL) {     /* 2**28 > |x| > 2.0 */
           t = fabs(x);
           w = __ieee754_logl(2.0*t+one/(__ieee754_sqrtl(x*x+one)+t));
       } else {             /* 2.0 > |x| > 2**-29 */
           t = x*x;
           w =__log1pl(fabsl(x)+t/(one+__ieee754_sqrtl(one+t)));
       }
       if(hx>0) return w; else return -w;
}

Here is the call graph for this function:

long_double_symbol ( libm  ,
__asinhl  ,
asinhl   
)

Variable Documentation

long double huge = 1.00000000000000000000e+300L [static]

Definition at line 39 of file s_asinhl.c.

long double ln2 = 0.6931471805599453094172321214581766L [static]

Definition at line 38 of file s_asinhl.c.

long double one = 1.00000000000000000000e+00L [static]

Definition at line 37 of file s_asinhl.c.