diff options
author | Ulrich Drepper <drepper@redhat.com> | 1996-09-10 02:00:15 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1996-09-10 02:00:15 +0000 |
commit | 569c558c880779d33c6642662d1aa57dff697244 (patch) | |
tree | 0e0cebd3aa3c32f9f236e8cc97bd534c9130934c /sysdeps/ieee754/sqrt.c | |
parent | c2bb8cabc58851b00d43c15ed4c37ac393a3465b (diff) | |
download | glibc-569c558c880779d33c6642662d1aa57dff697244.tar glibc-569c558c880779d33c6642662d1aa57dff697244.tar.gz glibc-569c558c880779d33c6642662d1aa57dff697244.tar.bz2 glibc-569c558c880779d33c6642662d1aa57dff697244.zip |
update from main archive 960909cvs/libc-960910
Mon Sep 9 20:31:27 1996 Ulrich Drepper <drepper@cygnus.com>
* version.c (banner): Report to bug-glibc@prep not @gnu.
Reported by Andreas Jaeger.
* libio/stdio.h [!__USE_REENTRANT]: Don't define getc as
_IO_getc_unlocked.
[__USE_REENTRANT]: Don't define
Mon Sep 9 15:59:32 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/strrchr.c: Fix bug where NUL byte is not recognized
when it is the third byte in the string. Reported by
NIIBE Yutaka.
* string/tester.c: Add tests for above bug to strlen, strchr, and
strrchr tests.
Fri Sep 6 21:23:33 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/e_acos.c: Deansideclized. Include
"math_private.h" to get prototype.
* sysdeps/m68k/fpu/e_fmod.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Likewise.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
* sysdeps/m68k/fpu/k_sin.c: Remove uneeded indirection of
__m81_u.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
Sun Sep 1 18:01:35 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/__math.h: Check for __NO_M81_MATH_INLINES
instead of __NO_MATH_INLINES.
(__M81_MATH_INLINES): Renamed from __MATH_INLINES.
* sysdeps/m68k/fpu/e_acos.c: Define __NO_M81_MATH_INLINES.
* sysdeps/m68k/fpu/e_fmod.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Likewise.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
* sysdeps/m68k/fpu/s_atan.c: Likewise.
* sysdeps/m68k/fpu/s_frexp.c: Likewise.
* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
* sysdeps/m68k/fpu/s_isinf.c: Likewise.
* sysdeps/m68k/fpu/s_ldexp.c: Likewise.
* sysdeps/m68k/fpu/s_modf.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Use inline version of __cos.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
Mon Sep 9 12:55:14 1996 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): Check for
available character before converting number and return with
error if none is available.
Fri Sep 6 22:09:08 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/init-first.h: New file, generic
implementation for architectures where parameters are passed on
stack.
* sysdeps/unix/sysv/linux/m68k/init-first.h: Removed.
* sysdeps/unix/sysv/linux/i386/init-first.h: Removed.
Fri Sep 6 22:05:32 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* configure.in: Remove unneeded sysnames frobbing.
Mon Sep 9 05:29:09 1996 Ulrich Drepper <drepper@cygnus.com>
* time/zic.c: Update from ADO 96l.
* time/africa: Update from ADO 96k.
* time/antarctica: Likewise.
* time/asia: Likewise.
* time/australia: Likewise.
* time/europe: Likewise.
* time/northamerica: Likewise.
* time/southamerica: Likewise.
Mon Sep 9 05:03:47 1996 NIIBE Yutaka <gniibe@mri.co.jp>
* sysdeps/unix/sysv/linux/i386/init-first.h: Work around buggy
gcc <= 2.7.2.1 which optimizes away address operations on weak
objects.
* nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): New macro.
Like INT_FIELD but also accept non-existing field.
* shadow/sgetspent_r.c (LINE_PARSER): Use INT_FIELD_MAYBE_NULL
for last four fields.
* shadow/putspent.c (putspent): Print `:' after numeric value.
Mon Sep 9 02:42:48 1996 Richard Henderson <rth@tamu.edu>
* libio/stdio.h (BUFSIZ): Define using _IO_BUFSIZ.
Sun Sep 8 16:43:56 1996 Ulrich Drepper <drepper@cygnus.com>
* Make-dist: Filter out $(add-ons) from $(subdirs).
Don't distribute TAGS files.
($(tardir).tar): Remove dist.tar when all is done.
* manual/Makefile (distribute): Add libc.info*.
* libio/Makefile (distribute): Add Banner.
* inet/Makefile (headers): Add netinet/tcp.h.
* resolv/Makefile (libresolv-routines): Add getnetnamadr.
* crypt-README: Removed.
* gnu-stabs.h: Removed.
* sysdeps/alpha/copysign.S: Renamed to...
* sysdeps/alpha/s_copysign.S: ...this.
* sysdeps/alpha/fabs.S: Renamed to...
* sysdeps/alpha/s_fabs.S: ...this.
* sysdeps/m68k/isinfl.c: Renamed to...
* sysdeps/m68k/s_isinfl.c: ...this.
* sysdeps/m68k/isnanl.c: Renamed to...
* sysdeps/m68k/s_isnanl.c: ...this.
* sysdeps/sparc/sqrt.c: Renamed to...
* sysdeps/sparc/e_sqrt.c: ...this. Function name now is
__ieee754_sqrt.
* sysdeps/generic/get_str.c: Removed.
* sysdeps/ieee754/cbrt.c: Removed.
* sysdeps/ieee754/drem.c: Removed.
* sysdeps/ieee754/logb.c: Removed.
* sysdeps/ieee754/sqrt.c: Removed.
* sysdeps/stub/cbrt.c: Removed.
* sysdeps/stub/cos.c: Removed.
* sysdeps/stub/drem.c: Removed.
* sysdeps/stub/isinf.c: Removed.
* sysdeps/stub/isinfl.c: Removed.
* sysdeps/stub/isnanl.c: Removed.
* sysdeps/stub/logb.c: Removed.
* sysdeps/stub/sin.c: Removed.
* sysdeps/stub/sqrt.c: Removed.
* sysdeps/tahoe/log10.c: Removed.
* sysdeps/vax/index.s: Removed.
* sysdeps/vax/rindex.s: Removed.
* sysdeps/vax/bcmp.s: Removed.
* sysdeps/vax/log10.c: Removed.
* sysdeps/vax/infnan.c: Removed.
* sysdeps/vax/Dist: Add fl.h.
* sysdeps/unix/sysv/linux/alpha/Dist: Add llseek.S.
* inet/rcmd.c (rcmd): Make messages more uniform.
Sun Sep 8 14:15:42 1996 Ulrich Drepper <drepper@cygnus.com>
* po/de.po: Update.
* po/es.po: Update.
* po/ko.po: Update.
* po/pl.po: New file.
* po/nl.po: New file.
take care for a possible clash. Nobody will name the domain
Diffstat (limited to 'sysdeps/ieee754/sqrt.c')
-rw-r--r-- | sysdeps/ieee754/sqrt.c | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/sysdeps/ieee754/sqrt.c b/sysdeps/ieee754/sqrt.c deleted file mode 100644 index 7e350e0d91..0000000000 --- a/sysdeps/ieee754/sqrt.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * 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 <errno.h> -#include <math.h> - -/* Return the square root of X. */ -double -DEFUN (sqrt, (x), double x) -{ - double q, s, b, r, t; - CONST double zero = 0.0; - int m, n, i; - - /* sqrt (NaN) is NaN; sqrt (+-0) is +-0. */ - if (__isnan (x) || x == zero) - return x; - - if (x < zero) - return zero / zero; - - /* sqrt (Inf) is Inf. */ - if (__isinf (x)) - return x; - - /* Scale X to [1,4). */ - n = __logb (x); - x = __scalb (x, -n); - m = __logb (x); - if (m != 0) - /* Subnormal number. */ - x = __scalb (x, -m); - - m += n; - n = m / 2; - - if ((n + n) != m) - { - x *= 2; - --m; - n = m / 2; - } - - /* Generate sqrt (X) bit by bit (accumulating in Q). */ - q = 1.0; - s = 4.0; - x -= 1.0; - r = 1; - for (i = 1; i <= 51; i++) - { - t = s + 1; - x *= 4; - r /= 2; - if (t <= x) - { - s = t + t + 2, x -= t; - q += r; - } - else - s *= 2; - } - - /* Generate the last bit and determine the final rounding. */ - r /= 2; - x *= 4; - if (x == zero) - goto end; - (void) (100 + r); /* Trigger inexact flag. */ - if (s < x) - { - q += r; - x -= s; - s += 2; - s *= 2; - x *= 4; - t = (x - s) - 5; - b = 1.0 + 3 * r / 4; - if (b == 1.0) - goto end; /* B == 1: Round to zero. */ - b = 1.0 + r / 4; - if (b > 1.0) - t = 1; /* B > 1: Round to +Inf. */ - if (t >= 0) - q += r; - } /* Else round to nearest. */ - else - { - s *= 2; - x *= 4; - t = (x - s) - 1; - b = 1.0 + 3 * r / 4; - if (b == 1.0) - goto end; - b = 1.0 + r / 4; - if (b > 1.0) - t = 1; - if (t >= 0) - q += r; - } - -end: - return __scalb (q, n); -} |