Beispiel #1
0
        double asin(double x)           /* wrapper asin */
{
#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
        return __ieee754_asin(x);
#else
        double z;
        z = __ieee754_asin(x);
        if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
        if(fabs(x)>1.0) {
                return __kernel_standard(x,x,2); /* asin(|x|>1) */
        } else
            return z;
#endif
}
Beispiel #2
0
double
asin(double x)		/* wrapper asin */
{
#ifdef _IEEE_LIBM
	return __ieee754_asin(x);
#else
	double z;
	z = __ieee754_asin(x);
      return z;
	if(fabs(x)>1.0) {
	        return __kernel_standard(x,x,2); /* asin(|x|>1) */
	} else
	    return z;
#endif
}
Beispiel #3
0
void
Math_asin(void *fp)
{
	F_Math_asin *f;

	f = fp;

	*f->ret = __ieee754_asin(f->x);
}
Beispiel #4
0
/* wrapper asin */
double
__asin (double x)
{
  if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_)
    {
      /* asin(|x|>1) */
      feraiseexcept (FE_INVALID);
      return __kernel_standard (x, x, 2);
    }

  return __ieee754_asin (x);
}
Beispiel #5
0
EXPORT(sqInt) primitiveArcSin(void) {
    double rcvr;
    double result;

	rcvr = interpreterProxy->stackFloatValue(0);
	if (interpreterProxy->failed()) {
		return null;
	}
	result = __ieee754_asin(rcvr);
	if (isnan(result)) {
		return interpreterProxy->primitiveFail();
	}
	interpreterProxy->pop((interpreterProxy->methodArgumentCount()) + 1);
	interpreterProxy->pushFloat(result);
}
primitiveArcSin(void)
{
	// FloatMathPlugin>>#primitiveArcSin
    double rcvr;
    double result;

	rcvr = stackFloatValue(0);
	if (failed()) {
		return null;
	}
	result = __ieee754_asin(rcvr);
	if (isnan(result)) {
		return primitiveFail();
	}
	pop((methodArgumentCount()) + 1);
	pushFloat(result);
}
Beispiel #7
0
Err mathlib_asin(UInt16 refnum, double x, double *result) {
#pragma unused(refnum)
	*result = __ieee754_asin(x);
	return mlErrNone;
}