diff options
Diffstat (limited to 'libjava/classpath/native/fdlibm/w_fmod.c')
-rw-r--r-- | libjava/classpath/native/fdlibm/w_fmod.c | 74 |
1 files changed, 3 insertions, 71 deletions
diff --git a/libjava/classpath/native/fdlibm/w_fmod.c b/libjava/classpath/native/fdlibm/w_fmod.c index b6b36cb76ab..9d9f3a89e98 100644 --- a/libjava/classpath/native/fdlibm/w_fmod.c +++ b/libjava/classpath/native/fdlibm/w_fmod.c @@ -1,10 +1,10 @@ -/* @(#)w_fmod.c 5.1 93/09/24 */ +/* @(#)w_fmod.c 1.3 95/01/18 */ /* * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * - * Developed at SunPro, a Sun Microsystems, Inc. business. + * Developed at SunSoft, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. @@ -12,59 +12,11 @@ */ /* -FUNCTION -<<fmod>>, <<fmodf>>---floating-point remainder (modulo) - -INDEX -fmod -INDEX -fmodf - -ANSI_SYNOPSIS -#include <math.h> -double fmod(double <[x]>, double <[y]>) -float fmodf(float <[x]>, float <[y]>) - -TRAD_SYNOPSIS -#include <math.h> -double fmod(<[x]>, <[y]>) -double (<[x]>, <[y]>); - -float fmodf(<[x]>, <[y]>) -float (<[x]>, <[y]>); - -DESCRIPTION -The <<fmod>> and <<fmodf>> functions compute the floating-point -remainder of <[x]>/<[y]> (<[x]> modulo <[y]>). - -RETURNS -The <<fmod>> function returns the value -@ifinfo -<[x]>-<[i]>*<[y]>, -@end ifinfo -@tex -$x-i\times y$, -@end tex -for the largest integer <[i]> such that, if <[y]> is nonzero, the -result has the same sign as <[x]> and magnitude less than the -magnitude of <[y]>. - -<<fmod(<[x]>,0)>> returns NaN, and sets <<errno>> to <<EDOM>>. - -You can modify error treatment for these functions using <<matherr>>. - -PORTABILITY -<<fmod>> is ANSI C. <<fmodf>> is an extension. -*/ - -/* * wrapper fmod(x,y) */ #include "fdlibm.h" -#include <errno.h> -#ifndef _DOUBLE_IS_32BITS #ifdef __STDC__ double fmod(double x, double y) /* wrapper fmod */ @@ -77,31 +29,11 @@ PORTABILITY return __ieee754_fmod(x,y); #else double z; - struct exception exc; z = __ieee754_fmod(x,y); if(_LIB_VERSION == _IEEE_ ||isnan(y)||isnan(x)) return z; if(y==0.0) { - /* fmod(x,0) */ - exc.type = DOMAIN; - exc.name = "fmod"; - exc.arg1 = x; - exc.arg2 = y; - exc.err = 0; - if (_LIB_VERSION == _SVID_) - exc.retval = x; - else - exc.retval = 0.0/0.0; - if (_LIB_VERSION == _POSIX_) - errno = EDOM; - else if (!matherr(&exc)) { - errno = EDOM; - } - if (exc.err != 0) - errno = exc.err; - return exc.retval; + return __kernel_standard(x,y,27); /* fmod(x,0) */ } else return z; #endif } - -#endif /* defined(_DOUBLE_IS_32BITS) */ |