From 377a515b4ce100dc119db09a7bc1d7628136993a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 4 Mar 1997 05:53:28 +0000 Subject: update from main archive 970304 1997-03-04 04:31 Ulrich Drepper * Makerules: Add rules to handle versioning. * config.h.in (DO_VERSIONING): New macro. * config.make.in (versioning): New variable. * configure.in: Add checks for .symver directive in gas and --version-script option to ld. Define DO_VERSIONING and versioning if appropriate. * math/Makefile (routines): Add s_signbit, s_fpclassify, s_fmax, s_fmin, and s_fdim. * math/math.h: Define ISO C 9X constants, macros and functions. * math/mathcalls.h: Likewise. * sysdeps/libm-ieee754/s_fdim.c: New file. * sysdeps/libm-ieee754/s_fdimf.c: New file. * sysdeps/libm-ieee754/s_fdiml.c: New file. * sysdeps/libm-ieee754/s_fmax.c: New file. * sysdeps/libm-ieee754/s_fmaxf.c: New file. * sysdeps/libm-ieee754/s_fmaxl.c: New file. * sysdeps/libm-ieee754/s_fmin.c: New file. * sysdeps/libm-ieee754/s_fminf.c: New file. * sysdeps/libm-ieee754/s_fminl.c: New file. * sysdeps/libm-ieee754/s_fpclassify.c: New file. * sysdeps/libm-ieee754/s_fpclassifyf.c: New file. * sysdeps/libm-ieee754/s_fpclassifyl.c: New file. * sysdeps/libm-ieee754/s_signbit.c: New file. * sysdeps/libm-ieee754/s_signbitf.c: New file. * sysdeps/libm-ieee754/s_signbitl.c: New file. * stdio-common/printf_fphex.c: Correct printing of decimal point character. Simplify conversion of mantissa to string. * stdio-common/vfscanf.c: Handle %A format. Optimize termination of floating-point scanning. * stdio-common/tstscanf.c (main): Add new test to scanf to test scanning float values with given width. * stdlib/strtod.c: Add handling of floating-point numbers in hexadecimal notation. * stdlib/stdlib.h: Use __USE_ISOC9X feature macro for new long long functions. Pretty print #if directives. * string/string.h: Pretty print #if directives. * sysdeps/ieee754/dbl2mpn.c: Update copyright. * sysdeps/ieee754/ldbl2mpn.c: Likewise. * sysdeps/ieee754/mpn2dbl.c: Likewise. * sysdeps/ieee754/mpn2flt.c: Likewise. * sysdeps/ieee754/mpn2ldbl.c: Likewise. * sysdeps/unix/sysv/linux/poll.c: Implement poll function by falling back to select-based implementation if syscall isn't available. * sysdeps/unix/sysv/linux/syscalls.list: Add s_poll. * time/leapseconds: Update from tzdata1997b. * time/zic.c: Update from tzcode1997b. 1997-03-01 15:08 Andreas Schwab * time/Makefile $(tzfiles:%=$(objpfx)z.%): Remove unneeded depedencies between installed $(tzlinks) and $(tzbases) files. 1997-03-01 14:27 Andreas Schwab * math/math.h: Make compatible with traditional preprocessor; requires carefull placement of whitespace in macro arguments. Use __CONCAT instead of ##. Declare long double functions only if __STDC__ or __GNUC__. * math/mathcall.h: Avoid whitespace before argument of macro call that is used as function name. * sysdeps/m68k/fpu/__math.h: Use __CONCAT instead of ##. (__m81_u, __m81_inline): Depend on __LIBC_M81_MATH_INLINES instead of __NO_M81_MATH_INLINES. [!__LIBC_M81_MATH_INLINES]: Don't define internal functions starting with __ieee754. [!__NO_MATH_INLINES && __OPTIMIZE__]: Define user visible functions as inlines. (__m81_defun): Put __attribute__ between return type and function name. * math/math.h: Include <__math.h> also if __LIBC_M81_MATH_INLINES is defined. * sysdeps/m68k/fpu/e_acos.c: Define __LIBC_M81_MATH_INLINES instead of __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. De-ANSI-declify. * 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_modf.c: Likewise. * sysdeps/m68k/fpu/s_scalbn.c: Likewise. 1997-02-27 21:51 Andreas Schwab * Makefile (tests): Cope with $PATH not including the current directory. 1997-02-27 18:04 Andreas Schwab * sysdeps/unix/Makefile ($(common-objpfx)mk-local_lim): Use $(common-objdir-compile). ($(common-objpfx)make-ioctls): Likewise. (mk-local_lim-CFLAGS): Set this instead of local_lim-CFLAGS. ($(common-objpfx)sys/param.h): Use $(make-target-directory). ($(addprefix $(common-objpfx),$(sys/param.h-includes))): Likewise. ($(common-objpfx)sys/syscall.h): Likewise. ($(common-objpfx)local_lim.h): Let make deal with command failure. ($(common-objpfx)param.h.dep): Use temporary file and update target atomically. ($(common-objpfx)errnos): Avoid the Useless Use of cat Award. (include $(common-objpfx)param.h.dep): Ignore error. * sysdeps/posix/Makefile ($(common-objpfx)mk-stdiolim): Use $(common-objdir-compile). (mk-stdiolim-CFLAGS): Renamed from cded-objdir-includes, use $(shell pwd) instead of $$cwd. * sysdeps/generic/Makefile ($(common-objpfx)det_endian): Use $(common-objdir-compile). ($(objpfx)make_siglist): Use $(native-compile). (make_siglist-CFLAGS): New variable. * Makerules (ALL_BUILD_CFLAGS): Renamed from BUILD_CFLAGS, leaving the old name for the user to pass additional flags to the host compiler. Fix reference to config header. (native-compile, common-objdir-compile): Rewritten to make more generally usable. * sysdeps/unix/sysv/sysv4/solaris2/Makefile: Set ALL_BUILD_CFLAGS instead of BUILD_CFLAGS. * sysvips/sys/ipc.h: Warn if needed feature select macro are not defined. 1997-02-27 17:11 Andreas Schwab * sunrpc/Makefile ($(objpfx)rpc-proto.d, $(objpfx)rpc-proto.c): New rules to generate dependencies for the RPC service objects. 1997-02-27 16:26 Andreas Schwab * argp/argp-parse.c (parser_finalize): Always set *END_INDEX if supplied. 1997-02-28 03:27 Ulrich Drepper * stdlib/strtod.c (STRTOF): Make sure return value is large enough so that clearing second word is necessary. * sysdeps/unix/sysv/linux/netinet/in_systm.h: Don't use kernel header since it is wrong for 64 bit systems. Patch by a sun . 1997-02-27 10:34:11 Richard Henderson * sysdeps/unix/sysv/linux/alpha/brk.S: Support both the Linux/i386 and OSF/1 style brk syscalls. We may want to change Linux/Alpha for the benefit of running foreign binaries. 1997-03-01 20:21 Miles Bader 1997-02-25 19:42 Miles Bader --- math/mathcalls.h | 111 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 83 insertions(+), 28 deletions(-) (limited to 'math/mathcalls.h') diff --git a/math/mathcalls.h b/math/mathcalls.h index ca2fe0c32a..fd8ed86e81 100644 --- a/math/mathcalls.h +++ b/math/mathcalls.h @@ -73,7 +73,7 @@ __MATHCALL (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL (tanh,, (_Mdouble_ __x)); -#if defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X /* Hyperbolic arc cosine of X. */ __MATHCALL (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ @@ -99,7 +99,10 @@ __MATHCALL (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL (log10,, (_Mdouble_ __x)); -#if defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) +/* Break VALUE into integral and fractional parts. */ +__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)); + +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X /* Return exp(X) - 1. */ __MATHCALL (expm1,, (_Mdouble_ __x)); @@ -110,8 +113,13 @@ __MATHCALL (log1p,, (_Mdouble_ __x)); __MATHCALL (logb,, (_Mdouble_ __x)); #endif -/* Break VALUE into integral and fractional parts. */ -__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)); +#ifdef __USE_ISOC9X +/* Compute base-2 exponential of X. */ +__MATHCALL (exp2,, (_Mdouble_ __x)); + +/* Compute base-2 logarithm of X. */ +__MATHCALL (log2,, (_Mdouble_ __x)); +#endif /* Power functions. */ @@ -122,7 +130,12 @@ __MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); -#if defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X +/* Return `sqrt(X*X + Y*Y)'. */ +__MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); +#endif + +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED /* Return the cube root of X. */ __MATHCALL (cbrt,, (_Mdouble_ __x)); #endif @@ -144,13 +157,12 @@ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC - /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ -__MATHDECL (int, isinf,, (_Mdouble_ __value)); +__MATHDECL (int,isinf,, (_Mdouble_ __value)); /* Return nonzero if VALUE is finite and not NaN. */ -__MATHDECL (int, finite,, (_Mdouble_ __value)); +__MATHDECL (int,finite,, (_Mdouble_ __value)); /* Deal with an infinite or NaN result. If ERROR is ERANGE, result is +Inf; @@ -160,9 +172,6 @@ __MATHDECL (int, finite,, (_Mdouble_ __value)); and may return an infinity or NaN, or may do something else. */ __MATHCALL (infnan,, (int __error)); -/* Return X with its signed changed to Y's. */ -__MATHCALL (copysign,, (_Mdouble_ __x, _Mdouble_ __y)); - /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); @@ -182,36 +191,45 @@ __MATHCALL (cabs,, (struct __MATH_PRECNAME(__cabs_complex,))); __MATHCALL (significand,, (_Mdouble_ __x)); #endif /* Use misc. */ +#if defined __USE_MISC || defined __USE_ISOC9X +/* Return X with its signed changed to Y's. */ +__MATHCALL (copysign,, (_Mdouble_ __x, _Mdouble_ __y)); +#endif + +#ifdef __USE_ISOC9X +/* Return representation of NaN for double type. */ +__MATHCALL (nan,, (__const char *__tagb)); +#endif -#if defined(__USE_MISC) || defined(__USE_XOPEN) +#if defined __USE_MISC || defined __USE_XOPEN /* Return nonzero if VALUE is not a number. */ -__MATHDECL (int, isnan,, (_Mdouble_ __value)); +__MATHDECL (int,isnan,, (_Mdouble_ __value)); /* Return the binary exponent of X, which must be nonzero. */ -__MATHDECL (int, ilogb,, (_Mdouble_ __x)); +__MATHDECL (int,ilogb,, (_Mdouble_ __x)); -/* Return `sqrt(X*X + Y*Y)'. */ -__MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); +/* Bessel functions. */ +__MATHCALL (j0,, (_Mdouble_)); +__MATHCALL (j1,, (_Mdouble_)); +__MATHCALL (jn,, (int, _Mdouble_)); +__MATHCALL (y0,, (_Mdouble_)); +__MATHCALL (y1,, (_Mdouble_)); +__MATHCALL (yn,, (int, _Mdouble_)); +#endif +#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC9X /* Error, gamma, and Bessel functions. */ __MATHCALL (erf,, (_Mdouble_)); __MATHCALL (erfc,, (_Mdouble_)); __MATHCALL (gamma,, (_Mdouble_)); -__MATHCALL (j0,, (_Mdouble_)); -__MATHCALL (j1,, (_Mdouble_)); -__MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); -__MATHCALL (y0,, (_Mdouble_)); -__MATHCALL (y1,, (_Mdouble_)); -__MATHCALL (yn,, (int, _Mdouble_)); /* This variable is used by `gamma' and `lgamma'. */ extern int signgam; #ifdef __USE_MISC - /* Reentrant versions of gamma and lgamma. Those functions use the global variable `signgam'. The reentrant versions instead take a pointer and store the value through it. */ @@ -219,16 +237,14 @@ __MATHCALL (gamma,_r, (_Mdouble_, int *)); __MATHCALL (lgamma,_r, (_Mdouble_, int *)); #endif +#endif /* Use misc or X/Open. */ -#if defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); -/* Return X times (2 to the Nth power). */ -__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); - /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); @@ -236,4 +252,43 @@ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); #endif -#endif /* Use misc. */ +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +/* Return X times (2 to the Nth power). */ +__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); +#endif + +#ifdef __USE_ISOC9X +/* Round X to integral valuein floating-point format using current + rounding direction, but do not raise inexact exception. */ +__MATHCALL (nearbyint,, (_Mdouble_ __x)); + +/* Round X to nearest integral value, rounding halfway cases away from + zero. */ +__MATHCALL (round,, (_Mdouble_ __x)); + +/* Round X to the integral value in floating-point format nearest but + not larger in magnitude. */ +__MATHCALL (trunc,, (_Mdouble_ __x)); + +/* Compute remainder of X and Y and put in *QUO a value with sign of x/y + and magnitude congruent `mod 2^n' to the magnitude of the integral + quotient x/y, with n >= 3. */ +__MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + + +/* Return positive difference between X and Y. */ +__MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + +/* Return minimum numeric value from X and Y. */ +__MATHCALL (fmax,, (_Mdouble_ __x, _Mdouble_ __y)); + +/* Return maximum numeric value from X and Y. */ +__MATHCALL (fmin,, (_Mdouble_ __x, _Mdouble_ __y)); + + +/* Classify given number. */ +__MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value)); + +/* Test for negative number. */ +__MATHDECL_1 (int, __signbit,, (_Mdouble_ __value)); +#endif /* Use ISO C 9X. */ -- cgit v1.2.3