Esempio n. 1
0
File: w_scalbf.c Progetto: dreal/tai
/* Wrapper scalbf */
float
__scalbf (float x, float fn)
{
  return (__builtin_expect (_LIB_VERSION == _SVID_, 0)
	  ? sysv_scalbf (x, fn)
	  : __ieee754_scalbf (x, fn));
}
Esempio n. 2
0
/* Wrapper scalbf */
float
__scalbf (float x, float fn)
{
  if (__glibc_unlikely (_LIB_VERSION == _SVID_))
    return sysv_scalbf (x, fn);
  else
    {
      float z = __ieee754_scalbf (x, fn);

      if (__glibc_unlikely (!isfinite (z) || z == 0.0f))
	{
	  if (isnan (z))
	    {
	      if (!isnan (x) && !isnan (fn))
		__set_errno (EDOM);
	    }
	  else if (isinf (z))
	    {
	      if (!isinf (x) && !isinf (fn))
		__set_errno (ERANGE);
	    }
	  else
	    {
	      /* z == 0.  */
	      if (x != 0.0f && !isinf (fn))
		__set_errno (ERANGE);
	    }
	}
      return z;
    }
}