Ejemplo n.º 1
0
/* wrapper y0l */
long double
y0l (long double x)
{
#  if defined(__UCLIBC_HAS_FENV__)
  if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0)
      && _LIB_VERSION != _IEEE_)
    {
      if (x < 0.0L)
	{
	  /* d = zero/(x-x) */
	  feraiseexcept (FE_INVALID);
	  return __kernel_standard_l (x, x, 209);
	}
      else if (x == 0.0L)
	{
	  /* d = -one/(x-x) */
	  feraiseexcept (FE_DIVBYZERO);
	  return __kernel_standard_l (x, x, 208);
	}
      else if (_LIB_VERSION != _POSIX_)
	/* y0(x>X_TLOSS) */
	return __kernel_standard_l (x, x, 235);
    }
#  endif /* __UCLIBC_HAS_FENV__ */
  return (long double)__ieee754_y0 ((double) x);
}
Ejemplo n.º 2
0
sysv_scalbl (long double x, long double fn)
{
  long double z = __ieee754_scalbl (x, fn);

  if (__glibc_unlikely (__isinfl (z)))
    {
      if (__finitel (x))
	return __kernel_standard_l (x, fn, 232); /* scalb overflow */
      else
	__set_errno (ERANGE);
    }
  else if (__builtin_expect (z == 0.0L, 0) && z != x)
    return __kernel_standard_l (x, fn, 233); /* scalb underflow */

  return z;
}
Ejemplo n.º 3
0
/* wrapper sqrtl */
long double
__sqrtl (long double x)
{
  if (__builtin_expect (isless (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
    return __kernel_standard_l (x, x, 226); /* sqrt(negative) */

  return __ieee754_sqrtl (x);
}
Ejemplo n.º 4
0
/* wrapper remainderl */
long double
__remainderl (long double x, long double y)
{
  if (((__builtin_expect (y == 0.0L, 0) && ! __isnanl (x))
       || (__builtin_expect (__isinf_nsl (x), 0) && ! __isnanl (y)))
      && _LIB_VERSION != _IEEE_)
    return __kernel_standard_l (x, y, 228); /* remainder domain */

  return __ieee754_remainderl (x, y);
}
Ejemplo n.º 5
0
/* wrapper fmodl */
long double
__fmodl (long double x, long double y)
{
  if (__builtin_expect (isinf (x) || y == 0.0L, 0)
      && _LIB_VERSION != _IEEE_ && !isnan (y) && !isnan (x))
    /* fmod(+-Inf,y) or fmod(x,0) */
    return __kernel_standard_l (x, y, 227);

  return __ieee754_fmodl (x, y);
}
Ejemplo n.º 6
0
long double
__sinhl (long double x)
{
	long double z = __ieee754_sinhl (x);
	if (__builtin_expect (!__finitel (z), 0) && __finitel (x)
	    && _LIB_VERSION != _IEEE_)
	    return __kernel_standard_l (x, x, 225); /* sinh overflow */

	return z;
}
Ejemplo n.º 7
0
/* wrapper expl */
long double
__expl (long double x)
{
  long double z = __ieee754_expl (x);
  if (__builtin_expect (!__finitel (z) || z == 0, 0)
      && __finitel (x) && _LIB_VERSION != _IEEE_)
    return __kernel_standard_l (x, x, 206 + !!__signbitl (x));

  return z;
}
Ejemplo n.º 8
0
/* wrapper j0l */
long double
__j0l (long double x)
{
  if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0)
      && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
    /* j0(|x|>X_TLOSS) */
    return __kernel_standard_l (x, x, 234);

  return __ieee754_j0l (x);
}
Ejemplo n.º 9
0
long double
__coshl (long double x)
{
	long double z = __ieee754_coshl (x);
	if (__builtin_expect (!isfinite (z), 0) && isfinite (x)
	    && _LIB_VERSION != _IEEE_)
		return __kernel_standard_l (x, x, 205); /* cosh overflow */

	return z;
}
Ejemplo n.º 10
0
/* wrapper log10l(x) */
long double
__log10l (long double x)
{
  if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
    {
      if (x == 0.0L)
	{
	  feraiseexcept (FE_DIVBYZERO);
	  return __kernel_standard_l (x, x, 218); /* log10(0) */
	}
      else
	{
	  feraiseexcept (FE_INVALID);
	  return __kernel_standard_l (x, x, 219); /* log10(x<0) */
	}
    }

  return  __ieee754_log10l (x);
}
Ejemplo n.º 11
0
/* wrapper j0l */
long double
j0l (long double x)
{
#  if defined(__UCLIBC_HAS_FENV__)
  if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0)
      && _LIB_VERSION != _IEEE_ && _LIB_VERSION != _POSIX_)
    /* j0(|x|>X_TLOSS) */
    return __kernel_standard_l (x, x, 234);
#  endif /* __UCLIBC_HAS_FENV__ */
  return (long double) __ieee754_j0 ((double)x);
}
Ejemplo n.º 12
0
long double
__exp10l (long double x)
{
  long double z = __ieee754_exp10l (x);
  if (__builtin_expect (!__finitel (z), 0)
      && __finitel (x) && _LIB_VERSION != _IEEE_)
    /* exp10l overflow (246) if x > 0, underflow (247) if x < 0.  */
    return __kernel_standard_l (x, x, 246 + !!__signbitl (x));

  return z;
}
Ejemplo n.º 13
0
/* wrapper atanhl */
long double
__atanhl (long double x)
{
  if (__builtin_expect (isgreaterequal (fabsl (x), 1.0L), 0)
      && _LIB_VERSION != _IEEE_)
    return __kernel_standard_l (x, x,
				fabsl (x) > 1.0L
				? 230		/* atanh(|x|>1) */
				: 231);		/* atanh(|x|==1) */

  return __ieee754_atanhl (x);
}
Ejemplo n.º 14
0
long double
LGFUNC (__lgammal) (long double x)
{
	long double y = CALL_LGAMMA (long double, __ieee754_lgammal_r, x);
	if(__builtin_expect(!isfinite(y), 0)
	   && isfinite(x) && _LIB_VERSION != _IEEE_)
		return __kernel_standard_l(x, x,
					   floorl(x)==x&&x<=0.0L
					   ? 215 /* lgamma pole */
					   : 214); /* lgamma overflow */

	return y;
}
Ejemplo n.º 15
0
long double __ynl(int n, long double x)	/* wrapper ynl */
{
#ifdef _IEEE_LIBM
	return __ieee754_ynl(n,x);
#else
	long double z;
	z = __ieee754_ynl(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_l((double)n,x,212);
                else
                    /* d = zero/(x-x); */
                    return __kernel_standard_l((double)n,x,213);
        }
	if(x>X_TLOSS && _LIB_VERSION != _POSIX_) {
	    return __kernel_standard_l((double)n,x,239); /* yn(x>X_TLOSS,n) */
	} else
	    return z;
#endif
}
Ejemplo n.º 16
0
/* wrapper y1l */
long double
__y1l (long double x)
{
  if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0)
      && _LIB_VERSION != _IEEE_)
    {
      if (x < 0.0L)
	{
	  /* d = zero/(x-x) */
	  feraiseexcept (FE_INVALID);
	  return __kernel_standard_l (x, x, 211);
	}
      else if (x == 0.0L)
	/* d = -one/(x-x) */
	return __kernel_standard_l (x, x, 210);
      else if (_LIB_VERSION != _POSIX_)
	/* y1(x>X_TLOSS) */
	return __kernel_standard_l (x, x, 237);
    }

  return __ieee754_y1l (x);
}
Ejemplo n.º 17
0
/* wrapper acosl */
long double
__acosl (long double x)
{
  if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0)
      && _LIB_VERSION != _IEEE_)
    {
      /* acos(|x|>1) */
      feraiseexcept (FE_INVALID);
      return __kernel_standard_l (x, x, 201);
    }

  return __ieee754_acosl (x);
}
Ejemplo n.º 18
0
long double
sinhl (long double x)
{
#if defined(__UCLIBC_HAS_FENV__)
	long double z = (long double) __ieee754_sinh ((double) x);
	if (__builtin_expect (!isfinite (z), 0) && isfinite (x)
	    && _LIB_VERSION != _IEEE_)
	    return __kernel_standard_l (x, x, 225); /* sinh overflow */

	return z;
# else
	return (long double) __ieee754_sinh ((double) x);
# endif /* __UCLIBC_HAS_FENV__ */
}
Ejemplo n.º 19
0
/* wrapper powl */
long double
__powl (long double x, long double y)
{
  long double z = __ieee754_powl (x, y);
  if (__glibc_unlikely (!isfinite (z)))
    {
      if (_LIB_VERSION != _IEEE_)
	{
	  if (isfinite (x) && isfinite (y))
	    {
	      if (isnan (z))
		/* pow neg**non-int */
		return __kernel_standard_l (x, y, 224);
	      else if (x == 0.0L && y < 0.0L)
		{
		  if (signbit (x) && signbit (z))
		    /* pow(-0.0,negative) */
		    return __kernel_standard_l (x, y, 223);
		  else
		    /* pow(+0.0,negative) */
		    return __kernel_standard_l (x, y, 243);
		}
	      else
		/* pow overflow */
		return __kernel_standard_l (x, y, 221);
	    }
	}
    }
  else if (__builtin_expect (z == 0.0L, 0)
	   && isfinite (x) && x != 0 && isfinite (y)
	   && _LIB_VERSION != _IEEE_)
    /* pow underflow */
    return __kernel_standard_l (x, y, 222);

  return z;
}
Ejemplo n.º 20
0
/* wrapper powl */
long double
__powl (long double x, long double y)
{
  long double z = __ieee754_powl (x, y);
  if (__builtin_expect (!__finitel (z), 0))
    {
      if (_LIB_VERSION != _IEEE_)
	{
	  if (__isnanl (x))
	    {
	      if (y == 0.0L)
		/* pow(NaN,0.0) */
		return __kernel_standard_l (x, y, 242);
	    }
	  else if (__finitel (x) && __finitel (y))
	    {
	      if (__isnanl (z))
		/* pow neg**non-int */
		return __kernel_standard_l (x, y, 224);
	      else if (x == 0.0L && y < 0.0L)
		{
		  if (signbit (x) && signbit (z))
		    /* pow(-0.0,negative) */
		    return __kernel_standard_l (x, y, 223);
		  else
		    /* pow(+0.0,negative) */
		    return __kernel_standard_l (x, y, 243);
		}
	      else
		/* pow overflow */
		return __kernel_standard_l (x, y, 221);
	    }
	}
    }
  else if (__builtin_expect (z == 0.0L, 0) && __finitel (x) && __finitel (y)
	   && _LIB_VERSION != _IEEE_)
    {
      if (x == 0.0L)
	{
	  if (y == 0.0L)
	    /* pow(0.0,0.0) */
	    return __kernel_standard_l (x, y, 220);
	}
      else
	/* pow underflow */
	return __kernel_standard_l (x, y, 222);
    }

  return z;
}
Ejemplo n.º 21
0
long double __jnl(int n, long double x)	/* wrapper jnl */
{
#ifdef _IEEE_LIBM
	return __ieee754_jnl(n,x);
#else
	long double z;
	z = __ieee754_jnl(n,x);
	if (_LIB_VERSION == _IEEE_
	    || _LIB_VERSION == _POSIX_
	    || isnan(x))
	  return z;
	if(fabsl(x)>X_TLOSS) {
	    return __kernel_standard_l((double)n,x,238); /* jn(|x|>X_TLOSS,n) */
	} else
	    return z;
#endif
}
Ejemplo n.º 22
0
long double
__lgammal(long double x)
{
	int local_signgam = 0;
	long double y = __ieee754_lgammal_r(x,
					    _LIB_VERSION != _ISOC_
					    /* ISO C99 does not define the
					       global variable.  */
					    ? &signgam
					    : &local_signgam);
	if(__builtin_expect(!__finitel(y), 0)
	   && __finitel(x) && _LIB_VERSION != _IEEE_)
		return __kernel_standard_l(x, x,
					   __floorl(x)==x&&x<=0.0L
					   ? 215 /* lgamma pole */
					   : 214); /* lgamma overflow */

	return y;
}