+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.
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
#define declare_mgen_finite_alias_x(from, to) \
#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,
--- /dev/null
+/* 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 */
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
/* log_10 (2). */
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
CFLOAT
#include <stdint.h>
#include <sys/types.h>
#include <fenv.h>
-#include <float.h>
#include <get-rounding-mode.h>
/* Gather machine dependent _Floatn support. */
#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
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#ifndef SECTION
# define SECTION
#include <inttypes.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const double huge = 1e300;
#include <fenv.h>
#include <inttypes.h>
#include <math_private.h>
+#include <math-underflow.h>
#include "t_exp2.h"
#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
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
double
__ieee754_hypot (double x, double y)
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <math-underflow.h>
static double pone (double), qone (double);
#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 */
#include "MathLib.h"
#include "upow.tbl"
#include <math_private.h>
+#include <math-underflow.h>
#include <fenv.h>
#ifndef SECTION
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-double.h>
static const double
#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 */
#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>
#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
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libc-diag.h>
static const double
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>
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-double.h>
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-double.h>
#define IN_SINCOS
#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>
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const float
one = 1.0000000000e+00, /* 0x3F800000 */
#include <inttypes.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const float huge = 1e30;
#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
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <math-underflow.h>
static float ponef(float), qonef(float);
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <math-underflow.h>
static const float
two = 2.0000000000e+00, /* 0x40000000 */
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const float
half = 5.0000000000e-01,/* 0x3f000000 */
#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 */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-float.h>
static const float
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-float.h>
static const float atanhi[] = {
#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>
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libc-diag.h>
static const float
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>
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const _Float128
one = 1,
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const _Float128 one = 1, huge = L(1e4900);
#include <fenv.h>
#include <inttypes.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <stdlib.h>
#include "t_expl.h"
#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
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
_Float128
__ieee754_hypotl(_Float128 x, _Float128 y)
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
/* 1 / sqrt(pi) */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const _Float128
invsqrtpi = L(5.6418958354775628694807945156077258584405E-1),
#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);
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const _Float128 c[] = {
#define ONE c[0]
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const _Float128 c[] = {
#define ONE c[0]
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libc-diag.h>
static const _Float128
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const _Float128
#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 */
#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] */
#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)
#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)
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>
#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);
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double
one = 1.0L,
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double one = 1.0L, huge = 1e300L;
#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
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
long double
__ieee754_hypotl(long double x, long double y)
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <float.h>
/* 1 / sqrt(pi) */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double
invsqrtpi = 5.6418958354775628694807945156077258584405E-1L,
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double bp[] = {
1.0L,
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double one = 1.0, shuge = 1.0e307;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double c[] = {
#define ONE c[0]
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double c[] = {
#define ONE c[0]
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libc-diag.h>
static const long double
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <math_ldbl_opt.h>
static const long double
#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 */
#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>
#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>
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>
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double
one = 1.0L,
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double one = 1.0, huge = 1e4900L;
#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
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
long double __ieee754_hypotl(long double x, long double y)
{
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static long double pone (long double), qone (long double);
#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;
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
static const long double one = 1.0, shuge = 1.0e4931L;
#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. */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libc-diag.h>
static const long double
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const long double
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <libm-alias-ldouble.h>
static const long double
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>
#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;
#include <math.h>
#include <math_private.h>
+#include <math-underflow.h>
#include <stdint.h>
static const double two60 = 1.152921504606847e+18;
#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