diff options
author | Roland McGrath <roland@gnu.org> | 1996-06-07 21:18:34 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-06-07 21:18:34 +0000 |
commit | bf668fc8f06ccba22b4927fba337efdabbe06ac1 (patch) | |
tree | 0802b22479d466bedf33fe16531f69b73fa67c38 /sysdeps/generic/fmod.c | |
parent | 6f3e22dc48834c1f9633fee843647800cc2d6b79 (diff) | |
download | glibc-bf668fc8f06ccba22b4927fba337efdabbe06ac1.tar glibc-bf668fc8f06ccba22b4927fba337efdabbe06ac1.tar.gz glibc-bf668fc8f06ccba22b4927fba337efdabbe06ac1.tar.bz2 glibc-bf668fc8f06ccba22b4927fba337efdabbe06ac1.zip |
Fri Jun 7 16:48:13 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/i386/Dist: New file, list sys/perm.h and
sys/vm86.h.
Removed old math code no longer used since the fdlibm integration.
* sysdeps/stub/acos.c: File removed.
* sysdeps/stub/asin.c: File removed.
* sysdeps/stub/atan2.c: File removed.
* sysdeps/stub/cosh.c: File removed.
* sysdeps/stub/exp.c: File removed.
* sysdeps/stub/fmod.c: File removed.
* sysdeps/stub/frexp.c: File removed.
* sysdeps/stub/log.c: File removed.
* sysdeps/stub/log10.c: File removed.
* sysdeps/stub/sinh.c: File removed.
* sysdeps/stub/tan.c: File removed.
* sysdeps/stub/tanh.c: File removed.
* sysdeps/generic/acos.c: File removed.
* sysdeps/generic/acosh.c: File removed.
* sysdeps/generic/asin.c: File removed.
* sysdeps/generic/asinh.c: File removed.
* sysdeps/generic/atan.c: File removed.
* sysdeps/generic/atan2.c: File removed.
* sysdeps/generic/atanh.c: File removed.
* sysdeps/generic/cabs.c: File removed.
* sysdeps/generic/ceil.c: File removed.
* sysdeps/generic/copysign.c: File removed.
* sysdeps/generic/cosh.c: File removed.
* sysdeps/generic/exp.c: File removed.
* sysdeps/generic/expm1.c: File removed.
* sysdeps/generic/fabs.c: File removed.
* sysdeps/generic/floor.c: File removed.
* sysdeps/generic/fmod.c: File removed.
* sysdeps/generic/frexp.c: File removed.
* sysdeps/generic/hypot.c: File removed.
* sysdeps/generic/infnan.c: File removed.
* sysdeps/generic/isnan.c: File removed.
* sysdeps/generic/ldexp.c: File removed.
* sysdeps/generic/log.c: File removed.
* sysdeps/generic/log10.c: File removed.
* sysdeps/generic/log1p.c: File removed.
* sysdeps/generic/modf.c: File removed.
* sysdeps/generic/pow.c: File removed.
* sysdeps/generic/rint.c: File removed.
* sysdeps/generic/sinh.c: File removed.
* sysdeps/generic/tan.c: File removed.
* sysdeps/generic/tanh.c: File removed.
* sysdeps/ieee754/cabs.c: File removed.
* sysdeps/ieee754/copysign.c: File removed.
* sysdeps/ieee754/frexp.c: File removed.
* sysdeps/ieee754/hypot.c: File removed.
* sysdeps/ieee754/infnan.c: File removed.
* sysdeps/ieee754/ldexp.c: File removed.
* sysdeps/ieee754/log10.c: File removed.
* posix/Makefile (headers): Add schedbits.h.
* math/Makefile (elided-routines): Add long double routines.
Fri Jun 7 09:11:17 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/Dist: Add sys/sysinfo.h, sys/mount.h,
sys/kdaemon.h, sys/io.h, sys/mount.h, sysctl.c.
* gmon/Makefile (distribute): Add profil-counter.h.
* sysdeps/unix/sysv/linux/alpha/Dist: New file.
* sysdeps/unix/Dist: Add s-proto.S.
* sysdeps/unix/common/mk-local_lim.c: Obsolete file removed.
* Make-dist (+sysdep-tsrcs): Get all syscalls.list files too.
* csu/Makefile (distribute): Add start.c.
* elf/Makefile (distribute): Add dl-machine.h.
* sysdeps/alpha/Dist: Add _mcount.S.
* sysdeps/alpha/Makefile (sysdep_routines): Append instead of
resetting; don't add bb_init_func.
* string/Makefile (routines): Add strerror_r.
* string/string.h (strerror_r): Use int for BUFLEN arg.
* Makefile (distribute): Add shlib-versions.
* po/Makefile (distribute): Add SYS_libc.pot.
* misc/Makefile (routines): Add lsearch.
* manual/lang.texi (Consistency Checking): Merge in assert_perror defn
and other changes inadvertently made to the obsolete assert.texi.
* manual/assert.texi: File removed.
* mach/mach_syscalls.c: Obsolete file removed.
* mach/mach_syscalls.h: Likewise.
* mach/mach_traps.S: Likewise.
* mach/msg_destroy.c: Likewise.
* mach/vm_page_size.c: Likewise.
* locale/Makefile (distribute): Add weight.h, charset.h.
* Makefile (distribute): Add version.h.
* hurd/Makefile (headers): Add hurd/ioctl.h.
(distribute): Add intr-rpc.d, intr-rpc.h, faultexc.defs.
* csu/Makefile (distribute): Add gmon-start.c.
* Makefile (distribute): Add config.h.in.
sysdeps/m68k/fpu/e_atanhl.c, sysdeps/m68k/fpu/e_coshl.c: New files.
Diffstat (limited to 'sysdeps/generic/fmod.c')
-rw-r--r-- | sysdeps/generic/fmod.c | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/sysdeps/generic/fmod.c b/sysdeps/generic/fmod.c deleted file mode 100644 index 09a31b29b3..0000000000 --- a/sysdeps/generic/fmod.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static char sccsid[] = "@(#)fmod.c 8.1 (Berkeley) 6/4/93"; -#endif /* not lint */ - -/* fmod.c - * - * SYNOPSIS - * - * #include <math.h> - * double fmod(double x, double y) - * - * DESCRIPTION - * - * The fmod function computes the floating-point remainder of x/y. - * - * RETURNS - * - * The fmod function returns the value x-i*y, for some integer i - * such that, if y is nonzero, the result has the same sign as x and - * magnitude less than the magnitude of y. - * - * On a VAX or CCI, - * - * fmod(x,0) traps/faults on floating-point divided-by-zero. - * - * On IEEE-754 conforming machines with "isnan()" primitive, - * - * fmod(x,0), fmod(INF,y) are invalid operations and NaN is returned. - * - */ -#if !defined(vax) && !defined(tahoe) -extern int isnan(),finite(); -#endif /* !defined(vax) && !defined(tahoe) */ -extern double frexp(),ldexp(),fabs(); - -#ifdef TEST_FMOD -static double -_fmod(x,y) -#else /* TEST_FMOD */ -double -fmod(x,y) -#endif /* TEST_FMOD */ -double x,y; -{ - int ir,iy; - double r,w; - - if (y == (double)0 -#if !defined(vax) && !defined(tahoe) /* per "fmod" manual entry, SunOS 4.0 */ - || isnan(y) || !finite(x) -#endif /* !defined(vax) && !defined(tahoe) */ - ) - return (x*y)/(x*y); - - r = fabs(x); - y = fabs(y); - (void)frexp(y,&iy); - while (r >= y) { - (void)frexp(r,&ir); - w = ldexp(y,ir-iy); - r -= w <= r ? w : w*(double)0.5; - } - return x >= (double)0 ? r : -r; -} - -#ifdef TEST_FMOD -extern long random(); -extern double fmod(); - -#define NTEST 10000 -#define NCASES 3 - -static int nfail = 0; - -static void -doit(x,y) -double x,y; -{ - double ro = fmod(x,y),rn = _fmod(x,y); - if (ro != rn) { - (void)printf(" x = 0x%08.8x %08.8x (%24.16e)\n",x,x); - (void)printf(" y = 0x%08.8x %08.8x (%24.16e)\n",y,y); - (void)printf(" fmod = 0x%08.8x %08.8x (%24.16e)\n",ro,ro); - (void)printf("_fmod = 0x%08.8x %08.8x (%24.16e)\n",rn,rn); - (void)printf("\n"); - } -} - -main() -{ - register int i,cases; - double x,y; - - srandom(12345); - for (i = 0; i < NTEST; i++) { - x = (double)random(); - y = (double)random(); - for (cases = 0; cases < NCASES; cases++) { - switch (cases) { - case 0: - break; - case 1: - y = (double)1/y; break; - case 2: - x = (double)1/x; break; - default: - abort(); break; - } - doit(x,y); - doit(x,-y); - doit(-x,y); - doit(-x,-y); - } - } - if (nfail) - (void)printf("Number of failures: %d (out of a total of %d)\n", - nfail,NTEST*NCASES*4); - else - (void)printf("No discrepancies were found\n"); - exit(0); -} -#endif /* TEST_FMOD */ |