diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-02-23 16:16:19 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-02-23 16:16:19 +0000 |
commit | e034e7b4291a01dc3551cebd8a58cacc72839a91 (patch) | |
tree | 872b535941151b3f357227f4f449cc67eaf20281 /native/fdlibm/w_fmod.c | |
parent | efdb3930935f478e2d67d179ab398e0f9e73bf37 (diff) | |
download | classpath-e034e7b4291a01dc3551cebd8a58cacc72839a91.tar.gz |
2006-02-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
* include/java_lang_VMMath.h:
(Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Added.
(Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Added.
(Java_java_lang_VMMath_expm1(JNIEnv*,jclass,jdouble)): Added.
(Java_java_lang_VMMath_hypot(JNIEnv*,jclass,jdouble,jdouble)): Added.
(Java_java_lang_VMMath_log10(JNIEnv*,jclass,jdouble)): Added.
(Java_java_lang_VMMath_log1p(JNIEnv*,jclass,jdouble)): Added.
(Java_java_lang_VMMath_sinh(JNIEnv*,jclass,jdouble)): Added.
(Java_java_lang_VMMath_tanh(JNIEnv*,jclass,jdouble)): Added.
* java/lang/Math.java:
(cbrt(double)): Implemented.
(cosh(double)): Implemented.
(expm1(double)): Implemented.
(hypot(double,double)): Implemented.
(log10(double)): Implemented.
(log1p(double)): Implemented.
(signum(double)): Implemented.
(signum(float)): Implemented.
(sinh(double)): Implemented.
(tanh(double)): Implemented.
* native/fdlibm/Makefile.am:
Added new files from fdlibm 5.3.
* native/fdlibm/e_acos.c,
* native/fdlibm/e_asin.c,
* native/fdlibm/e_atan2.c,
* native/fdlibm/e_exp.c,
* native/fdlibm/e_fmod.c,
* native/fdlibm/e_log.c,
* native/fdlibm/e_rem_pio2.c,
* native/fdlibm/e_remainder.c,
* native/fdlibm/e_scalb.c,
* native/fdlibm/e_sqrt.c,
* native/fdlibm/k_cos.c,
* native/fdlibm/k_rem_pio2.c,
* native/fdlibm/k_sin.c,
* native/fdlibm/k_tan.c,
* native/fdlibm/s_atan.c,
* native/fdlibm/s_ceil.c,
* native/fdlibm/s_copysign.c,
* native/fdlibm/s_cos.c,
* native/fdlibm/s_fabs.c,
* native/fdlibm/s_finite.c,
* native/fdlibm/s_floor.c,
* native/fdlibm/s_rint.c,
* native/fdlibm/s_scalbn.c,
* native/fdlibm/s_sin.c,
* native/fdlibm/s_tan.c,
* native/fdlibm/w_acos.c,
* native/fdlibm/w_asin.c,
* native/fdlibm/w_atan2.c,
* native/fdlibm/w_acos.c,
* native/fdlibm/w_exp.c,
* native/fdlibm/w_fmod.c,
* native/fdlibm/w_log.c,
* native/fdlibm/w_pow.c,
* native/fdlibm/w_remainder.c,
* native/fdlibm/w_sqrt.c:
Updated to fdlibm 5.3.
* native/fdlibm/e_cosh.c,
* native/fdlibm/e_hypot.c,
* native/fdlibm/e_log10.c,
* native/fdlibm/e_sinh.c,
* native/fdlibm/s_cbrt.c,
* native/fdlibm/s_expm1.c,
* native/fdlibm/s_log1p.c,
* native/fdlibm/s_tanh.c,
* native/fdlibm/w_cosh.c,
* native/fdlibm/w_hypot.c,
* native/fdlibm/w_log10.c,
* native/fdlibm/w_sinh.c:
Imported from fdlibm 5.3.
* native/fdlibm/fdlibm.h:
Imported from fdlibm 5.3 with Classpath additions.
* native/fdlibm/namespace.h:
Updated from new math_symbols file.
* native/jni/java-lang/java_lang_VMMath.c:
(Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Implemented.
(Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Implemented.
(Java_java_lang_VMMath_expm1(JNIEnv*,jclass,jdouble)): Implemented.
(Java_java_lang_VMMath_hypot(JNIEnv*,jclass,jdouble,jdouble)):
Implemented.
(Java_java_lang_VMMath_log10(JNIEnv*,jclass,jdouble)): Implemented.
(Java_java_lang_VMMath_log1p(JNIEnv*,jclass,jdouble)): Implemented.
(Java_java_lang_VMMath_sinh(JNIEnv*,jclass,jdouble)): Implemented.
(Java_java_lang_VMMath_tanh(JNIEnv*,jclass,jdouble)): Implemented.
* scripts/math_symbols:
Added tanh, expm1, log10 and log1p.
* vm/reference/java/lang/VMMath.java:
(cbrt(double)): Implemented.
(cosh(double)): Implemented.
(expm1(double)): Implemented.
(hypot(double,double)): Implemented.
(log10(double)): Implemented.
(log1p(double)): Implemented.
(sinh(double)): Implemented.
(tanh(double)): Implemented.
Diffstat (limited to 'native/fdlibm/w_fmod.c')
-rw-r--r-- | native/fdlibm/w_fmod.c | 74 |
1 files changed, 3 insertions, 71 deletions
diff --git a/native/fdlibm/w_fmod.c b/native/fdlibm/w_fmod.c index b6b36cb76..9d9f3a89e 100644 --- a/native/fdlibm/w_fmod.c +++ b/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) */ |