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/ieee754/ldexp.c | |
parent | 6f3e22dc48834c1f9633fee843647800cc2d6b79 (diff) | |
download | glibc-bf668fc8f06ccba22b4927fba337efdabbe06ac1.tar.gz glibc-bf668fc8f06ccba22b4927fba337efdabbe06ac1.tar.xz 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/ieee754/ldexp.c')
-rw-r--r-- | sysdeps/ieee754/ldexp.c | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/sysdeps/ieee754/ldexp.c b/sysdeps/ieee754/ldexp.c deleted file mode 100644 index e8e3c676f9..0000000000 --- a/sysdeps/ieee754/ldexp.c +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright (C) 1992, 1995 Free Software Foundation, Inc. -This file is part of the GNU C Library. - -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -/* - * Copyright (c) 1985 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted provided - * that: (1) source distributions retain this entire copyright notice and - * comment, and (2) distributions including binaries display the following - * acknowledgement: ``This product includes software developed by the - * University of California, Berkeley and its contributors'' in the - * documentation or other materials provided with the distribution and in - * all advertising materials mentioning features or use of this software. - * 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <ansidecl.h> -#include <math.h> -#include <float.h> -#include <errno.h> -#include "ieee754.h" - -double -DEFUN(ldexp, (x, exp), - double x AND int exp) -{ - union ieee754_double u; - unsigned int exponent; - - u.d = x; -#define x u.d - - exponent = u.ieee.exponent; - - /* The order of the tests is carefully chosen to handle - the usual case first, with no branches taken. */ - - if (exponent != 0) - { - /* X is nonzero and not denormalized. */ - - if (exponent <= DBL_MAX_EXP - DBL_MIN_EXP + 1) - { - /* X is finite. When EXP < 0, overflow is actually underflow. */ - - exponent += exp; - - if (exponent != 0) - { - if (exponent <= DBL_MAX_EXP - DBL_MIN_EXP + 1) - { - /* In range. */ - u.ieee.exponent = exponent; - return x; - } - - if (exp >= 0) - overflow: - { - CONST int negative = u.ieee.negative; - u.d = HUGE_VAL; - u.ieee.negative = negative; - errno = ERANGE; - return u.d; - } - - if (exponent <= - (unsigned int) (DBL_MANT_DIG + 1)) - { - /* Underflow. */ - CONST int negative = u.ieee.negative; - u.d = 0.0; - u.ieee.negative = negative; - errno = ERANGE; - return u.d; - } - } - - /* Gradual underflow. */ - u.ieee.exponent = 1; - u.d *= ldexp (1.0, (int) exponent - 1); - if (u.ieee.mantissa0 == 0 && u.ieee.mantissa1 == 0) - /* Underflow. */ - errno = ERANGE; - return u.d; - } - - /* X is +-infinity or NaN. */ - if (u.ieee.mantissa0 == 0 && u.ieee.mantissa1 == 0) - { - /* X is +-infinity. */ - if (exp >= 0) - goto overflow; - else - { - /* (infinity * number < 1). With infinite precision, - (infinity / finite) would be infinity, but otherwise it's - safest to regard (infinity / 2) as indeterminate. The - infinity might be (2 * finite). */ - CONST int negative = u.ieee.negative; - u.d = NAN; - u.ieee.negative = negative; - errno = EDOM; - return u.d; - } - } - - /* X is NaN. */ - errno = EDOM; - return u.d; - } - - /* X is zero or denormalized. */ - if (u.ieee.mantissa0 == 0 && u.ieee.mantissa1 == 0) - /* X is +-0.0. */ - return x; - - /* X is denormalized. - Multiplying by 2 ** DBL_MANT_DIG normalizes it; - we then subtract the DBL_MANT_DIG we added to the exponent. */ - return ldexp (x * ldexp (1.0, DBL_MANT_DIG), exp - DBL_MANT_DIG); -} - -/* Compatibility names for the same function. */ -weak_alias (ldexp, __scalb) -weak_alias (ldexp, scalb) |