Move math_check_force_underflow macros to separate math-underflow.h.

This patch continues cleaning up math_private.h by moving the
math_check_force_underflow set of macros to a separate header
math-underflow.h.

This header is included by the files that need it rather than from
math_private.h.  Moving these macros to a separate file removes the
math_private.h uses of macros from float.h, so the inclusion of
float.h in math_private.h is also removed; files that were depending
on that inclusion are fixed to include float.h directly.  The
inclusion of math-barriers.h from math_private.h will be removed in a
separate patch.

Tested for x86_64 and x86.  Also tested with build-many-glibcs.py that
installed stripped shared libraries are unchanged by this patch.

	* math/math-underflow.h: New file.
	* sysdeps/generic/math_private.h: Do not include <float.h>.
	(fabs_tg): Remove macro.  Moved to math-underflow.h.
	(min_of_type_f): Likewise.
	(min_of_type_): Likewise.
	(min_of_type_l): Likewise.
	(min_of_type_f128): Likewise.
	(min_of_type): Likewise.
	(math_check_force_underflow): Likewise.
	(math_check_force_underflow_nonneg): Likewise.
	(math_check_force_underflow_complex): Likewise.
	* math/e_exp2_template.c: Include <math-underflow.h>.
	* math/k_casinh_template.c: Likewise.
	* math/s_catan_template.c: Likewise.
	* math/s_catanh_template.c: Likewise.
	* math/s_ccosh_template.c: Likewise.
	* math/s_cexp_template.c: Likewise.
	* math/s_clog10_template.c: Likewise.
	* math/s_clog_template.c: Likewise.
	* math/s_csin_template.c: Likewise.
	* math/s_csinh_template.c: Likewise.
	* math/s_csqrt_template.c: Likewise.
	* math/s_ctan_template.c: Likewise.
	* math/s_ctanh_template.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
	* sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_erf.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_expm1.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_log1p.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_sincos.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_tanh.c: Likewise.
	* sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
	* sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
	* sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
	* sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
	* sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
	* sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
	* sysdeps/ieee754/flt-32/k_sinf.c: Likewise.
	* sysdeps/ieee754/flt-32/k_tanf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_atanf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_erff.c: Likewise.
	* sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
	* sysdeps/ieee754/flt-32/s_log1pf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_tanhf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/k_sincosl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/k_sinl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/k_tanl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_asinhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_atanl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_erfl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_expm1l.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_log1pl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_tanhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/k_tanl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_erfl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/k_sinl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/k_tanl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_erfl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_tanhl.c: Likewise.
	* sysdeps/powerpc/fpu/e_hypot.c: Likewise.
	* sysdeps/x86/fpu/powl_helper.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_nextup.c: Include <float.h>.
	* sysdeps/ieee754/flt-32/s_nextupf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_nextupl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_nextupl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_nextupl.c: Likewise.
This commit is contained in:
Joseph Myers 2018-05-10 00:53:04 +00:00
parent 9ed2e15ff4
commit 8f5b00d375
100 changed files with 287 additions and 53 deletions

111
ChangeLog
View File

@ -1,3 +1,114 @@
2018-05-10 Joseph Myers <joseph@codesourcery.com>
* math/math-underflow.h: New file.
* sysdeps/generic/math_private.h: Do not include <float.h>.
(fabs_tg): Remove macro. Moved to math-underflow.h.
(min_of_type_f): Likewise.
(min_of_type_): Likewise.
(min_of_type_l): Likewise.
(min_of_type_f128): Likewise.
(min_of_type): Likewise.
(math_check_force_underflow): Likewise.
(math_check_force_underflow_nonneg): Likewise.
(math_check_force_underflow_complex): Likewise.
* math/e_exp2_template.c: Include <math-underflow.h>.
* math/k_casinh_template.c: Likewise.
* math/s_catan_template.c: Likewise.
* math/s_catanh_template.c: Likewise.
* math/s_ccosh_template.c: Likewise.
* math/s_cexp_template.c: Likewise.
* math/s_clog10_template.c: Likewise.
* math/s_clog_template.c: Likewise.
* math/s_csin_template.c: Likewise.
* math/s_csinh_template.c: Likewise.
* math/s_csqrt_template.c: Likewise.
* math/s_ctan_template.c: Likewise.
* math/s_ctanh_template.c: Likewise.
* sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
* sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
* sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
* sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
* sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
* sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
* sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
* sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
* sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
* sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
* sysdeps/ieee754/dbl-64/s_erf.c: Likewise.
* sysdeps/ieee754/dbl-64/s_expm1.c: Likewise.
* sysdeps/ieee754/dbl-64/s_log1p.c: Likewise.
* sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
* sysdeps/ieee754/dbl-64/s_sincos.c: Likewise.
* sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
* sysdeps/ieee754/dbl-64/s_tanh.c: Likewise.
* sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
* sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
* sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
* sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
* sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
* sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
* sysdeps/ieee754/flt-32/k_sinf.c: Likewise.
* sysdeps/ieee754/flt-32/k_tanf.c: Likewise.
* sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
* sysdeps/ieee754/flt-32/s_atanf.c: Likewise.
* sysdeps/ieee754/flt-32/s_erff.c: Likewise.
* sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
* sysdeps/ieee754/flt-32/s_log1pf.c: Likewise.
* sysdeps/ieee754/flt-32/s_tanhf.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
* sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
* sysdeps/ieee754/ldbl-128/k_sincosl.c: Likewise.
* sysdeps/ieee754/ldbl-128/k_sinl.c: Likewise.
* sysdeps/ieee754/ldbl-128/k_tanl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_asinhl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_atanl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_erfl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_expm1l.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_log1pl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_tanhl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/k_tanl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_erfl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
* sysdeps/ieee754/ldbl-96/k_sinl.c: Likewise.
* sysdeps/ieee754/ldbl-96/k_tanl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_erfl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_tanhl.c: Likewise.
* sysdeps/powerpc/fpu/e_hypot.c: Likewise.
* sysdeps/x86/fpu/powl_helper.c: Likewise.
* sysdeps/ieee754/dbl-64/s_nextup.c: Include <float.h>.
* sysdeps/ieee754/flt-32/s_nextupf.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_nextupl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_nextupl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_nextupl.c: Likewise.
2018-05-09 Joseph Myers <joseph@codesourcery.com>
* sysdeps/generic/math-barriers.h: New file.

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
#define declare_mgen_finite_alias_x(from, to) \

View File

@ -21,6 +21,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* Return the complex inverse hyperbolic sine of finite nonzero Z,

79
math/math-underflow.h Normal file
View File

@ -0,0 +1,79 @@
/* Check for underflow and force underflow exceptions.
Copyright (C) 2015-2018 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 Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _MATH_UNDERFLOW_H
#define _MATH_UNDERFLOW_H 1
#include <float.h>
#include <math.h>
#include <math-barriers.h>
#define fabs_tg(x) __MATH_TG ((x), (__typeof (x)) __builtin_fabs, (x))
/* These must be function-like macros because some __MATH_TG
implementations macro-expand the function-name argument before
concatenating a suffix to it. */
#define min_of_type_f() FLT_MIN
#define min_of_type_() DBL_MIN
#define min_of_type_l() LDBL_MIN
#define min_of_type_f128() FLT128_MIN
#define min_of_type(x) __MATH_TG ((x), (__typeof (x)) min_of_type_, ())
/* If X (which is not a NaN) is subnormal, force an underflow
exception. */
#define math_check_force_underflow(x) \
do \
{ \
__typeof (x) force_underflow_tmp = (x); \
if (fabs_tg (force_underflow_tmp) \
< min_of_type (force_underflow_tmp)) \
{ \
__typeof (force_underflow_tmp) force_underflow_tmp2 \
= force_underflow_tmp * force_underflow_tmp; \
math_force_eval (force_underflow_tmp2); \
} \
} \
while (0)
/* Likewise, but X is also known to be nonnegative. */
#define math_check_force_underflow_nonneg(x) \
do \
{ \
__typeof (x) force_underflow_tmp = (x); \
if (force_underflow_tmp \
< min_of_type (force_underflow_tmp)) \
{ \
__typeof (force_underflow_tmp) force_underflow_tmp2 \
= force_underflow_tmp * force_underflow_tmp; \
math_force_eval (force_underflow_tmp2); \
} \
} \
while (0)
/* Likewise, for both real and imaginary parts of a complex
result. */
#define math_check_force_underflow_complex(x) \
do \
{ \
__typeof (x) force_underflow_complex_tmp = (x); \
math_check_force_underflow (__real__ force_underflow_complex_tmp); \
math_check_force_underflow (__imag__ force_underflow_complex_tmp); \
} \
while (0)
#endif /* math-underflow.h */

View File

@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* log_10 (2). */

View File

@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -21,6 +21,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
CFLOAT

View File

@ -20,7 +20,6 @@
#include <stdint.h>
#include <sys/types.h>
#include <fenv.h>
#include <float.h>
#include <get-rounding-mode.h>
/* Gather machine dependent _Floatn support. */
@ -265,58 +264,6 @@ extern void __docos (double __x, double __dx, double __v[]);
#include <math-barriers.h>
#define fabs_tg(x) __MATH_TG ((x), (__typeof (x)) __builtin_fabs, (x))
/* These must be function-like macros because some __MATH_TG
implementations macro-expand the function-name argument before
concatenating a suffix to it. */
#define min_of_type_f() FLT_MIN
#define min_of_type_() DBL_MIN
#define min_of_type_l() LDBL_MIN
#define min_of_type_f128() FLT128_MIN
#define min_of_type(x) __MATH_TG ((x), (__typeof (x)) min_of_type_, ())
/* If X (which is not a NaN) is subnormal, force an underflow
exception. */
#define math_check_force_underflow(x) \
do \
{ \
__typeof (x) force_underflow_tmp = (x); \
if (fabs_tg (force_underflow_tmp) \
< min_of_type (force_underflow_tmp)) \
{ \
__typeof (force_underflow_tmp) force_underflow_tmp2 \
= force_underflow_tmp * force_underflow_tmp; \
math_force_eval (force_underflow_tmp2); \
} \
} \
while (0)
/* Likewise, but X is also known to be nonnegative. */
#define math_check_force_underflow_nonneg(x) \
do \
{ \
__typeof (x) force_underflow_tmp = (x); \
if (force_underflow_tmp \
< min_of_type (force_underflow_tmp)) \
{ \
__typeof (force_underflow_tmp) force_underflow_tmp2 \
= force_underflow_tmp * force_underflow_tmp; \
math_force_eval (force_underflow_tmp2); \
} \
} \
while (0)
/* Likewise, for both real and imaginary parts of a complex
result. */
#define math_check_force_underflow_complex(x) \
do \
{ \
__typeof (x) force_underflow_complex_tmp = (x); \
math_check_force_underflow (__real__ force_underflow_complex_tmp); \
math_check_force_underflow (__imag__ force_underflow_complex_tmp); \
} \
while (0)
/* The standards only specify one variant of the fenv.h interfaces.
But at least for some architectures we can be more efficient if we
know what operations are going to be performed. Therefore we

View File

@ -42,6 +42,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#ifndef SECTION
# define SECTION

View File

@ -39,6 +39,7 @@
#include <inttypes.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const double huge = 1e300;

View File

@ -30,6 +30,7 @@
#include <fenv.h>
#include <inttypes.h>
#include <math_private.h>
#include <math-underflow.h>
#include "t_exp2.h"

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's

View File

@ -44,6 +44,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
double
__ieee754_hypot (double x, double y)

View File

@ -63,6 +63,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
static double pone (double), qone (double);

View File

@ -41,6 +41,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
static const double
invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */

View File

@ -38,6 +38,7 @@
#include "MathLib.h"
#include "upow.tbl"
#include <math_private.h>
#include <math-underflow.h>
#include <fenv.h>
#ifndef SECTION

View File

@ -36,6 +36,7 @@ static char rcsid[] = "$NetBSD: e_sinh.c,v 1.7 1995/05/10 20:46:13 jtc Exp $";
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
static const double one = 1.0, shuge = 1.0e307;

View File

@ -24,6 +24,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
static const double

View File

@ -46,6 +46,7 @@
#include <libm-alias-double.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <stap-probe.h>
void __mpatan (mp_no *, mp_no *, int); /* see definition in mpatan.c */

View File

@ -117,6 +117,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#include <fix-int-fp-convert-zero.h>

View File

@ -112,6 +112,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#define one Q[0]
static const double

View File

@ -81,6 +81,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libc-diag.h>
static const double

View File

@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>

View File

@ -41,6 +41,7 @@
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#include <fenv.h>

View File

@ -21,6 +21,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#define IN_SINCOS

View File

@ -41,6 +41,7 @@
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#include <fenv.h>
#include <stap-probe.h>

View File

@ -41,6 +41,7 @@ static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
static const double one = 1.0, two = 2.0, tiny = 1.0e-300;

View File

@ -42,6 +42,7 @@ static char rcsid[] = "$NetBSD: e_asinf.c,v 1.5 1995/05/12 04:57:25 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const float
one = 1.0000000000e+00, /* 0x3F800000 */

View File

@ -39,6 +39,7 @@
#include <inttypes.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const float huge = 1e30;

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
static float ponef(float), qonef(float);

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
static const float
two = 2.0000000000e+00, /* 0x40000000 */

View File

@ -17,6 +17,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
static const float one = 1.0, shuge = 1.0e37;

View File

@ -20,6 +20,7 @@ static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const float
half = 5.0000000000e-01,/* 0x3f000000 */

View File

@ -20,6 +20,7 @@ static char rcsid[] = "$NetBSD: k_tanf.c,v 1.4 1995/05/10 20:46:39 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const float
one = 1.0000000000e+00, /* 0x3f800000 */
pio4 = 7.8539812565e-01, /* 0x3f490fda */

View File

@ -16,6 +16,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-float.h>
static const float

View File

@ -20,6 +20,7 @@ static char rcsid[] = "$NetBSD: s_atanf.c,v 1.4 1995/05/10 20:46:47 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-float.h>
static const float atanhi[] = {

View File

@ -22,6 +22,7 @@ static char rcsid[] = "$NetBSD: s_erff.c,v 1.4 1995/05/10 20:47:07 jtc Exp $";
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-float.h>
#include <fix-int-fp-convert-zero.h>

View File

@ -17,6 +17,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-float.h>
static const float huge = 1.0e+30;

View File

@ -16,6 +16,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libc-diag.h>
static const float

View File

@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>

View File

@ -20,6 +20,7 @@ static char rcsid[] = "$NetBSD: s_tanhf.c,v 1.4 1995/05/10 20:48:24 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-float.h>
static const float one=1.0, two=2.0, tiny = 1.0e-30;

View File

@ -62,6 +62,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const _Float128
one = 1,

View File

@ -35,6 +35,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const _Float128 one = 1, huge = L(1e4900);

View File

@ -65,6 +65,7 @@
#include <fenv.h>
#include <inttypes.h>
#include <math_private.h>
#include <math-underflow.h>
#include <stdlib.h>
#include "t_expl.h"

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's

View File

@ -47,6 +47,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
_Float128
__ieee754_hypotl(_Float128 x, _Float128 y)

View File

@ -98,6 +98,7 @@
#include <errno.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* 1 / sqrt(pi) */

View File

@ -60,6 +60,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const _Float128
invsqrtpi = L(5.6418958354775628694807945156077258584405E-1),

View File

@ -56,6 +56,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const _Float128 one = 1.0, shuge = L(1.0e4931),
ovf_thresh = L(1.1357216553474703894801348310092223067821E4);

View File

@ -20,6 +20,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const _Float128 c[] = {
#define ONE c[0]

View File

@ -20,6 +20,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const _Float128 c[] = {
#define ONE c[0]

View File

@ -59,6 +59,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libc-diag.h>
static const _Float128

View File

@ -32,6 +32,7 @@ static char rcsid[] = "$NetBSD: $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const _Float128

View File

@ -62,6 +62,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
/* arctan(k/8), k = 0, ..., 82 */

View File

@ -100,6 +100,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
/* Evaluate P[n] x^n + P[n-1] x^(n-1) + ... + P[0] */

View File

@ -57,6 +57,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
/* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x)

View File

@ -56,6 +56,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
/* Coefficients for log(1+x) = x - x^2 / 2 + x^3 P(x)/Q(x)
* 1/sqrt(2) <= 1+x < sqrt(2)

View File

@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>

View File

@ -44,6 +44,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const _Float128 one = 1.0, two = 2.0, tiny = L(1.0e-4900);

View File

@ -62,6 +62,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double
one = 1.0L,

View File

@ -31,6 +31,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double one = 1.0L, huge = 1e300L;

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's

View File

@ -44,6 +44,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
long double
__ieee754_hypotl(long double x, long double y)

View File

@ -21,6 +21,7 @@
#include <errno.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* 1 / sqrt(pi) */

View File

@ -60,6 +60,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double
invsqrtpi = 5.6418958354775628694807945156077258584405E-1L,

View File

@ -66,6 +66,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double bp[] = {
1.0L,

View File

@ -31,6 +31,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double one = 1.0, shuge = 1.0e307;

View File

@ -20,6 +20,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double c[] = {
#define ONE c[0]

View File

@ -20,6 +20,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double c[] = {
#define ONE c[0]

View File

@ -59,6 +59,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libc-diag.h>
static const long double

View File

@ -28,6 +28,7 @@ static char rcsid[] = "$NetBSD: s_asinh.c,v 1.9 1995/05/12 04:57:37 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <math_ldbl_opt.h>
static const long double

View File

@ -62,6 +62,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <math_ldbl_opt.h>
/* arctan(k/8), k = 0, ..., 82 */

View File

@ -105,6 +105,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <math_ldbl_opt.h>
#include <fix-int-fp-convert-zero.h>

View File

@ -21,6 +21,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <math_ldbl_opt.h>
#include <mul_split.h>
#include <stdlib.h>

View File

@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>

View File

@ -41,6 +41,7 @@ static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <math_ldbl_opt.h>
static const long double one=1.0L, two=2.0L, tiny = 1.0e-300L;

View File

@ -61,6 +61,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double
one = 1.0L,

View File

@ -35,6 +35,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double one = 1.0, huge = 1e4900L;

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <float.h>
/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's

View File

@ -48,6 +48,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
long double __ieee754_hypotl(long double x, long double y)
{

View File

@ -75,6 +75,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static long double pone (long double), qone (long double);

View File

@ -60,6 +60,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double
invsqrtpi = 5.64189583547756286948079e-1L, two = 2.0e0L, one = 1.0e0L;

View File

@ -39,6 +39,7 @@ static char rcsid[] = "$NetBSD: $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
static const long double one = 1.0, shuge = 1.0e4931L;

View File

@ -23,6 +23,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
/* The polynomials have not been optimized for extended-precision and
may contain more terms than needed. */

View File

@ -59,6 +59,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libc-diag.h>
static const long double

View File

@ -32,6 +32,7 @@ static char rcsid[] = "$NetBSD: $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const long double

View File

@ -108,6 +108,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const long double

View File

@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>

View File

@ -45,6 +45,7 @@ static char rcsid[] = "$NetBSD: $";
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const long double one=1.0, two=2.0, tiny = 1.0e-4900L;

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <stdint.h>
static const double two60 = 1.152921504606847e+18;

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <stdbool.h>
/* High parts and low parts of -log (k/16), for integer k from 12 to