]> sourceware.org Git - glibc.git/commitdiff
Move math_check_force_underflow macros to separate math-underflow.h.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 10 May 2018 00:53:04 +0000 (00:53 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 10 May 2018 00:53:04 +0000 (00:53 +0000)
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.

100 files changed:
ChangeLog
math/e_exp2_template.c
math/k_casinh_template.c
math/math-underflow.h [new file with mode: 0644]
math/s_catan_template.c
math/s_catanh_template.c
math/s_ccosh_template.c
math/s_cexp_template.c
math/s_clog10_template.c
math/s_clog_template.c
math/s_csin_template.c
math/s_csinh_template.c
math/s_csqrt_template.c
math/s_ctan_template.c
math/s_ctanh_template.c
sysdeps/generic/math_private.h
sysdeps/ieee754/dbl-64/e_asin.c
sysdeps/ieee754/dbl-64/e_atanh.c
sysdeps/ieee754/dbl-64/e_exp2.c
sysdeps/ieee754/dbl-64/e_gamma_r.c
sysdeps/ieee754/dbl-64/e_hypot.c
sysdeps/ieee754/dbl-64/e_j1.c
sysdeps/ieee754/dbl-64/e_jn.c
sysdeps/ieee754/dbl-64/e_pow.c
sysdeps/ieee754/dbl-64/e_sinh.c
sysdeps/ieee754/dbl-64/s_asinh.c
sysdeps/ieee754/dbl-64/s_atan.c
sysdeps/ieee754/dbl-64/s_erf.c
sysdeps/ieee754/dbl-64/s_expm1.c
sysdeps/ieee754/dbl-64/s_log1p.c
sysdeps/ieee754/dbl-64/s_nextup.c
sysdeps/ieee754/dbl-64/s_sin.c
sysdeps/ieee754/dbl-64/s_sincos.c
sysdeps/ieee754/dbl-64/s_tan.c
sysdeps/ieee754/dbl-64/s_tanh.c
sysdeps/ieee754/flt-32/e_asinf.c
sysdeps/ieee754/flt-32/e_atanhf.c
sysdeps/ieee754/flt-32/e_gammaf_r.c
sysdeps/ieee754/flt-32/e_j1f.c
sysdeps/ieee754/flt-32/e_jnf.c
sysdeps/ieee754/flt-32/e_sinhf.c
sysdeps/ieee754/flt-32/k_sinf.c
sysdeps/ieee754/flt-32/k_tanf.c
sysdeps/ieee754/flt-32/s_asinhf.c
sysdeps/ieee754/flt-32/s_atanf.c
sysdeps/ieee754/flt-32/s_erff.c
sysdeps/ieee754/flt-32/s_expm1f.c
sysdeps/ieee754/flt-32/s_log1pf.c
sysdeps/ieee754/flt-32/s_nextupf.c
sysdeps/ieee754/flt-32/s_tanhf.c
sysdeps/ieee754/ldbl-128/e_asinl.c
sysdeps/ieee754/ldbl-128/e_atanhl.c
sysdeps/ieee754/ldbl-128/e_expl.c
sysdeps/ieee754/ldbl-128/e_gammal_r.c
sysdeps/ieee754/ldbl-128/e_hypotl.c
sysdeps/ieee754/ldbl-128/e_j1l.c
sysdeps/ieee754/ldbl-128/e_jnl.c
sysdeps/ieee754/ldbl-128/e_sinhl.c
sysdeps/ieee754/ldbl-128/k_sincosl.c
sysdeps/ieee754/ldbl-128/k_sinl.c
sysdeps/ieee754/ldbl-128/k_tanl.c
sysdeps/ieee754/ldbl-128/s_asinhl.c
sysdeps/ieee754/ldbl-128/s_atanl.c
sysdeps/ieee754/ldbl-128/s_erfl.c
sysdeps/ieee754/ldbl-128/s_expm1l.c
sysdeps/ieee754/ldbl-128/s_log1pl.c
sysdeps/ieee754/ldbl-128/s_nextupl.c
sysdeps/ieee754/ldbl-128/s_tanhl.c
sysdeps/ieee754/ldbl-128ibm/e_asinl.c
sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
sysdeps/ieee754/ldbl-128ibm/e_j1l.c
sysdeps/ieee754/ldbl-128ibm/e_jnl.c
sysdeps/ieee754/ldbl-128ibm/e_powl.c
sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
sysdeps/ieee754/ldbl-128ibm/k_sinl.c
sysdeps/ieee754/ldbl-128ibm/k_tanl.c
sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
sysdeps/ieee754/ldbl-128ibm/s_atanl.c
sysdeps/ieee754/ldbl-128ibm/s_erfl.c
sysdeps/ieee754/ldbl-128ibm/s_fmal.c
sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
sysdeps/ieee754/ldbl-128ibm/s_tanhl.c
sysdeps/ieee754/ldbl-96/e_asinl.c
sysdeps/ieee754/ldbl-96/e_atanhl.c
sysdeps/ieee754/ldbl-96/e_gammal_r.c
sysdeps/ieee754/ldbl-96/e_hypotl.c
sysdeps/ieee754/ldbl-96/e_j1l.c
sysdeps/ieee754/ldbl-96/e_jnl.c
sysdeps/ieee754/ldbl-96/e_sinhl.c
sysdeps/ieee754/ldbl-96/k_sinl.c
sysdeps/ieee754/ldbl-96/k_tanl.c
sysdeps/ieee754/ldbl-96/s_asinhl.c
sysdeps/ieee754/ldbl-96/s_erfl.c
sysdeps/ieee754/ldbl-96/s_nextupl.c
sysdeps/ieee754/ldbl-96/s_tanhl.c
sysdeps/powerpc/fpu/e_hypot.c
sysdeps/x86/fpu/powl_helper.c

index 7ab225e320e3ca25f9e321c6d80cf2af65fa6d64..b2b66020e81e59d9a204ac04cd689256ebe68ef2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 94a21054c2ce2acf7bdbfd4e1f679211bb36f6e4..30ed4af49bb443136185581f0e11f5838dcc655c 100644 (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) \
index f7b679e55fb3e6033748ee5a623b2ecabca4889c..451f05c279169661df7fa5156a1342fa606dfd4e 100644 (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,
diff --git a/math/math-underflow.h b/math/math-underflow.h
new file mode 100644 (file)
index 0000000..c5e5c79
--- /dev/null
@@ -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 */
index c3894c5a0a5a34e51f3bff95dad51fa9d01c6968..19f4e11cb47ab5869b560aa9e8f6d184621a108d 100644 (file)
@@ -20,6 +20,7 @@
 #include <complex.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index fdeeb589e156d7c9a5e5805a080a01882884367d..245a1a6412a60ce9eb453b76ba48fd26613e2168 100644 (file)
@@ -20,6 +20,7 @@
 #include <complex.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index 6840c4819e3272e0e89202666e0a481c6f48d49e..1664f0690a374f58f6e0b16652c3c27a8cdf3d97 100644 (file)
@@ -21,6 +21,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index e099e42a4c3fce0eac3814d364e8b0fb3cde08c0..5fdab1e5ac3fa7b465b408e1230d1e998b22cb36 100644 (file)
@@ -21,6 +21,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index 82a52faebfeb653da34d86df2246f0996fc98a01..a947502e94ae58e4f34c4a384744faa96f22ff97 100644 (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).  */
index 8aa1f74c8b16669a35ad68d532397d4934e21083..1248cac5932aff01a70191c774abf1fddc8499a4 100644 (file)
@@ -20,6 +20,7 @@
 #include <complex.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index d6af614177fc727b94d5ce8971a006a013b50c16..5f95e92ee0024351dd2c4a9cb7028d765f1b8c0c 100644 (file)
@@ -21,6 +21,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index 6466ae80c96440ba6e7b900e2c89f26910a29752..95f28c2b6690e1f93d35d694c26ca3d074262d8b 100644 (file)
@@ -21,6 +21,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index dcf14c753707f132e4250512fe42a7a7f3399d90..b1153906b902d64e864c00316511f517888c0061 100644 (file)
@@ -21,6 +21,7 @@
 #include <complex.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index af898d8f81031ab93dc95891fc41381f34922579..ab11c2529905fcf564671de2f7c49f5b172714d4 100644 (file)
@@ -21,6 +21,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index 9527ab4ccc5918b7e81e87d777d72b2aadd2eea4..bd1292239fe42cfb3a4154427c00283d3937b780 100644 (file)
@@ -21,6 +21,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <float.h>
 
 CFLOAT
index f6faf718958d3d00ff4972245a2abeb5b3844d8a..9cd0941431b9557447dfdde16581ae9f860540ee 100644 (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
index 768cbb9ec185dd07c85de3a02b82982c920ccb9c..6bf56945a65b2d14a4df3d2155badf83a0f76efd 100644 (file)
@@ -42,6 +42,7 @@
 #include <float.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 #ifndef SECTION
 # define SECTION
index 608afb5a8c39c7412c0b0c5701e4ef3d9972abf1..df9c8786b274e1ba4e40b53325f564a51634bebd 100644 (file)
@@ -39,6 +39,7 @@
 #include <inttypes.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 static const double huge = 1e300;
 
index a944abeee898ee29e8bca86de4d051cd49e07695..045cbbb88d61dbe78a4e53c37763b4e22b8921aa 100644 (file)
@@ -30,6 +30,7 @@
 #include <fenv.h>
 #include <inttypes.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 #include "t_exp2.h"
 
index a3750f9f311f47a53724fdd98f40b11f2670be67..2744549cbdd65c9780cf9ba30f0f47ed8b729dfc 100644 (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
index a89075169b4f16522d11aa7d900f02368add447b..a2c33cc4edb2df3e99bd233821ec0d9fa79412d2 100644 (file)
@@ -44,6 +44,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 double
 __ieee754_hypot (double x, double y)
index d0e387e1a21d497bd05dbec070e25cd84fd953df..734f3ca64a5d983c2dc277db5ad799d055167f48 100644 (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);
 
index 6ef0fbea1c266d7fd2f71a04913da5c49320d486..9181b22bb8dc7d5b2b24ed0df96702584c7a71fa 100644 (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 */
index 542d03a7e36f8c48f7542cca1eb7d4fdd29de42c..96d5b23ccc6a4aaf377cd9d076035dbc9bd28900 100644 (file)
@@ -38,6 +38,7 @@
 #include "MathLib.h"
 #include "upow.tbl"
 #include <math_private.h>
+#include <math-underflow.h>
 #include <fenv.h>
 
 #ifndef SECTION
index 49c24fb4894d6024eb3ec47aaada04bcbcbf9139..c4e34211ac0e166cc89a567cb3a5ace9e8f888d9 100644 (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;
 
index 5577ccebd9241200fd875d21ebcd423cd43cb1a0..192ff8594d94ff04e9f905d3638b8d528c22b4fe 100644 (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
index ff5718c82ec13465db314665b2f2baefe88437df..38db092d0458e35afa1871775c25b69c713e15d9 100644 (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 */
index 48dfca3317694e5e3a26670c78d99643193ab2b6..5f820604f8cdfd729770a445caf52c63f7d69881 100644 (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>
 
index 3e136e7ee07375d6b7aeafbfe9cafca5412acd12..8ef74f2196ed5d2bca0bf581654410712f46ef98 100644 (file)
 #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
index b7cf5ce32149ec7bbd13e9acfc134442486fa437..c01f1be93b324f0db95d09eb44674d1c00b51d62 100644 (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
index db13a5793bc53e6941044dc615248a0a0965ffbb..d37a2b66579e24f9fc7da9b8d2b2343db9f73dc2 100644 (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>
index ba1dbe27b66918f0ce5104b2e1bc9aba7f499808..b369ac9f5baac53b6ff299ad28f1ebd5ddff56e9 100644 (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>
 
index c7460371e44a02c99522f265efa7e5e66a121b1e..1d8d44befe0753eb83efaf6feb198a4e9048694f 100644 (file)
@@ -21,6 +21,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <math-underflow.h>
 #include <libm-alias-double.h>
 
 #define IN_SINCOS
index 05a25eb060a768111fdfe68cae942b3552fbe065..04ff8b6717beeffcfcb55f58cd44bcc732d6f52b 100644 (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>
index 321bf4414226be9e8522821e1695adf4f1ba9645..673a97102de292fdfa657b0c9cb77d31655f337c 100644 (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;
index 55eb1449c57161446374d649ae5cf95e41e86af4..e03073b8bd6998e5649ba50923b1a43767c969ba 100644 (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 */
index 598000a8cd74c8d1d171cffebf6d7a57ea4a67e0..43f11ad1f052a1cc9c88fe63a68c1017c9f13545 100644 (file)
@@ -39,6 +39,7 @@
 #include <inttypes.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 static const float huge = 1e30;
 
index d640510448922e35587a228c816d12a62cb3b4fd..8b23add347939defab1e168d50752dfe757220f2 100644 (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
index 8aadc4c31a9dd7541baeada6c810900c7ca94052..887b5f7d1ed1883f77e188f9a2b11ad25bc32443 100644 (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);
 
index a4414ce27ec0e46af66494f8e6d59c472d38e8b2..cd15ed7d4be3e0fbf8335da66c97ef6a888eda52 100644 (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 */
index 17b3663dde7aac7d6de0a3ee123123cbcaa90754..20f7db81ea72db9dbf5f5350b2602d28bc7e339c 100644 (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;
 
index a195d594667008f0960fd4f79f9ad6e68d29045f..dcf3c35358f9f48418426ee7361efdd91b83a153 100644 (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 */
index 9f0e55860f01da5b4e8b9261612185e1d6b8b9f5..228ece2075292e77b36bfbc0de1d785186f4ec46 100644 (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 */
index 27ecdd56fa79ae197af9fa8e9b1c5947b181eb3f..0812b54dca45efa978c3d35b171dd51e24fdaf7e 100644 (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
index 03a4cfd6a55bff76b1fe8b75cced83dac3b9b089..f61b0f5ef64866fb053a87f9c1a968165ba4de2a 100644 (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[] = {
index 1d00abdbf1cedb9a0e22b4a3b091e186bbf12945..693934d59ab695973d404f3b1e2df7c0bfdba59f 100644 (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>
 
index 035897077848498e382e38585fc48afa1788f374..3b04ce77518fad560ee664e81728e2c13de42684 100644 (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;
index 009084ee19e81601a64f1b42e7a8b01db57c9cba..9d2ef899756cf3b10358bc6870d84c15672c33db 100644 (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
index 7ba8c0b79defd3e35787cd83eb47cdbf2132476c..87ec7ba21f4cb326ac03386188c551ec3d43f395 100644 (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>
index c2b96cfa2b7731c6feacd87be4d2a9e5da4f2c12..cc3d63d35d6eb3e0719b7068764a619a2a3ccd3a 100644 (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;
index 53c2f1fada777e2fb36e4d53b3e60c318c6c8a43..6021facdfb18346bcfd4e3159994a70135c92c4e 100644 (file)
@@ -62,6 +62,7 @@
 #include <float.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 static const _Float128
   one = 1,
index 4c8c2e22e6a17ad57fb10860eb6a59b2b1283395..13b7683e1796ee5a24b3c69fbc1ce2c1e3da55cd 100644 (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);
 
index c4c61cbed4dbe0fac205314ee6d5bdc6c239f7bd..735dc9b8d0254650d3a7c1a5bc41b5aace59d5fb 100644 (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"
 
index 95b9fe06776af9de7b948181869043ad6abf42a8..e2730b8fc20942c22898eb246a1807a0e82e2f48 100644 (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
index dd82b3aec830b553dabd2303dad2e93560596615..7bafd4ae296318a1a3edf0eb366925ab029aed73 100644 (file)
@@ -47,6 +47,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 _Float128
 __ieee754_hypotl(_Float128 x, _Float128 y)
index bff3a5e88cc138d4a959315bfa2991ae163d3498..e6f46f52e9c408469a773d3fbc10b61728f4da9b 100644 (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) */
index 635b4e7e4298de011d28f55a4d103954ab651012..7739eec291920546bde787b39bb8fbf99b8be5e8 100644 (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),
index cce5b6e4fd86e8f7899c8c31d2ed71245428e6c0..39e7cf3084a635a1b0c285cac75317e5094e8894 100644 (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);
index 36668dd0a32b975a5acebc8024d222b0da4ae80e..6eb33ae375e19e3e53bdec68601a15264fd99d2a 100644 (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]
index a9f38c7f0ab64de42646c3a3466594d2531fb0e3..9c19fb1bf2f534cb92725fe4b5cad02aa17f30c5 100644 (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]
index e79023c69ad3fe020dc922932a4e64a5a7737404..8da794d80cb84fe72213c814458b41499b4b00e5 100644 (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
index 92a482658d3b9acd315e7b58520e757d7f082031..a733ee7695874a900738a26a3ad34809f3faed9e 100644 (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
index e05368df538359574e945d1554d8345c8323472c..022ccf4c45bc381ecfa5779e14f43867c9bcfc21 100644 (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 */
index 88e91c702ddd2f497d75976cabdae4ba33c9c423..c0abfe2926cb094aa3b3fc39986fe0419843f193 100644 (file)
 #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] */
index ea0d29c49312b7bedd8a68b58f5a81269e5b233f..66881af01a5691ec194878ced3bd75066ea84cef 100644 (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)
index b8b2ffeba1f162236e48426350fac36a5083aad2..f3181dbc8e608f4d64f53012e884a6d5c72ef30d 100644 (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)
index 5628c176809325ae7fcb3cda202875dec9fbaf4e..20827e6d098416fc3fed57ae5aef13c819a3c14c 100644 (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>
index 8f62f96c503f5f3089c1b4136baa5d2ba769465c..fc309dab0a26c98c75fa9d6a9964601f25c4a216 100644 (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);
index 1d42fcecef867abf5cd0072c3f018fdd25a4778b..0d6e313aa834121718ab0c9104eb199c2adc1bb9 100644 (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,
index b576f42030a1a4ff5f65f27b5b91538c42981eb6..25c286b8ff7c31225a84dbdc90479e08c22ae43e 100644 (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;
 
index 0ce702491e4b0ff68b74ca4a8510a1d666dc6dd1..84ea7ee0f5d58e77494fbc98273adec4a687805e 100644 (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
index 7f3b04fde6857450960eb472103a021fd49d5fa2..842f77b7ed709732fe02b4c8db11f45fda122fdd 100644 (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)
index 6130609f2a712c3dd7b330a4abdffbfa61b4c518..5126900f9647a650b0c3fa4fa622fccc8bab7288 100644 (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) */
index dde5720f5d935c48eee13a9446c70ea84b14bef5..71b3addfba0e33b5a4a4281132ae3da7126495b5 100644 (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,
index b6c7011501b1407d8e9831a04620a4304639028b..f59ad4e113b55ee2a8021c636e2534e68d0c6acc 100644 (file)
@@ -66,6 +66,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 
 static const long double bp[] = {
   1.0L,
index 67d9d24ce776f93e9f852cae6effb15f7a5936d9..f869fb068cfdf4a88d090b3f0bad5c914d515297 100644 (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;
 
index 4374220b1b8421492f347821bc7622cff0130330..ba95337c313e2e08fbc8df32bf0eb20cba29b85e 100644 (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]
index 1590c6db958ea759986035c46712d006eb6015dc..46d1d7b52a80403e3dad1e1a9f88da64e7b85cdf 100644 (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]
index 232e00c345fa1e30bf6cfe9d27b6a2dc78971399..3927fca25c39fd7b4f02c36bfb1054511cb2b032 100644 (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
index 21ba14bd83684a657bc70dd8f8273799008c2cf0..d4977e54146913732a59a4f41366c62f4fad7015 100644 (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
index 0560d820ae40c0d011db770b236110785fa3245a..32cf36c65d5c0c7a62a5e99916048bcccb153aae 100644 (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 */
index 7b761b0afa8821a0054f7bfa438d990a7e9c6e52..5302fee52211aff1b4acd150accdc895fbaeb6a6 100644 (file)
 #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>
 
index 3821fd75cd9ace3003b6120ea8779a82513d73c3..08aeb4c0d47a6be9821f9ea0714aaeaf92df1f75 100644 (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>
index 7743fe882fafcef49f51b3229e89de8c6ec9dd7b..9b532a3a2554acc31cbfc02f190a30e8972767a5 100644 (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>
index e6457a1c1cff01a0f0c1b0d179fe07a4756734ce..3504862402ee7b94803b2b60b5a5e13c470c30f0 100644 (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;
index 85982ca15865b1ac0cb15bc2240cd3a2366de401..806906a58a411bcb246c49cef4d6ce72ee1dab51 100644 (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,
index af3487f661c3de62d1e00d260db2f1bd8de0477f..c1f43ff3d75bc91c95969e4605804eaf1fcb2dbc 100644 (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;
 
index 5e5fd100c583d8b3d7ee304028be9cdfea8fda37..fc7a5c55dc6e7e6c178b08cbb96b70efaecca4e8 100644 (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
index 560ef226f46969de7b9622e324a7b4171449c507..f664e30c987a3c18000ec1c34b1d3e7e7a20ac33 100644 (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)
 {
index 6d0cb9ef677926b7da44ca2479a4444712633119..581615d563fce9b79cf23e5af15628fa61205398 100644 (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);
 
index fe249b9126e384e0406072b76237dcface0e487d..394921f564068c49d9ad180adc015d77bef4240d 100644 (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;
index 64f7c91333176993a4101db7429a9185c0d2b622..a4b39783bcca7d8aef10a52cbb407f929fed8a13 100644 (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;
 
index 30a3c2ac0e65d0bf5ae0746c74d1a94118321c01..2549f71d1947e42712c3b7d96b0e99c59e68d280 100644 (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.  */
index f8641d5ce41def39d0546aa830775a53bd335a2e..9b5151baa2ba1dae6482c2e762bea2afb56a1921 100644 (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
index 50a08ed90bbd0883a7055baa479c51100f5133d5..2b9ae1f67702a66e5df40bdbaeccc1609dc6c0ac 100644 (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
index 0f8974085b57daa7286415187982623ffd1b187f..1e42df70a7e0c16bf82462ffab6c110ba6861595 100644 (file)
 #include <float.h>
 #include <math.h>
 #include <math_private.h>
+#include <math-underflow.h>
 #include <libm-alias-ldouble.h>
 
 static const long double
index a1ca1fecee0e3d4122c675a23fe28b26104536b9..5dff32ce73f38e1039d1d3f3dc5f276b1ed35dab 100644 (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>
index b0578fffb5aa64cd6278d11930b269f6b0731abd..b1b3e0637b7c13e6d260901293d7385c65508f5c 100644 (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;
index 58352c0e54c6111b8097d38801dd408d4c255833..b55db6d2590240c3b4fb33514290d6899ef6bcb8 100644 (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;
index d270d308908de98a3e6fad322a2d6f5c8b0b9084..651eedd7920a17e5e023f3ac50b50f9d2d7ce0ec 100644 (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
This page took 0.150701 seconds and 5 git commands to generate.