immutable: Add tests.
[gnulib.git] / m4 / math_h.m4
bloba9ba5e655f68e30562081ca37b87d6544ea7f428
1 # math_h.m4 serial 122
2 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_MATH_H],
9   AC_REQUIRE([gl_MATH_H_DEFAULTS])
10   gl_CHECK_NEXT_HEADERS([math.h])
12   AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
13     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
14       [[/* Solaris 10 has a broken definition of NAN.  Other platforms
15         fail to provide NAN, or provide it only in C99 mode; this
16         test only needs to fail when NAN is provided but wrong.  */
17          float f = 1.0f;
18 #ifdef NAN
19          f = NAN;
20 #endif
21          return f == 0;]])],
22       [gl_cv_header_math_nan_works=yes],
23       [gl_cv_header_math_nan_works=no])])
24   if test $gl_cv_header_math_nan_works = no; then
25     REPLACE_NAN=1
26   fi
27   AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
28     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
29       [[/* Solaris 10 has a broken definition of HUGE_VAL.  */
30          double d = HUGE_VAL;
31          return d == 0;]])],
32       [gl_cv_header_math_huge_val_works=yes],
33       [gl_cv_header_math_huge_val_works=no])])
34   if test $gl_cv_header_math_huge_val_works = no; then
35     REPLACE_HUGE_VAL=1
36   fi
38   dnl Check for declarations of anything we want to poison if the
39   dnl corresponding gnulib module is not in use.
40   gl_WARN_ON_USE_PREPARE([[#include <math.h>]],
41     [acosf acosl asinf asinl atanf atanl
42      cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
43      expf expl exp2 exp2f exp2l expm1 expm1f expm1l
44      fabsf fabsl floorf floorl fma fmaf fmal
45      fmod fmodf fmodl frexpf frexpl hypotf hypotl
46      ilogb ilogbf ilogbl
47      ldexpf ldexpl
48      log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l
49      logb logbf logbl
50      modf modff modfl powf
51      remainder remainderf remainderl
52      rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
53      tanf tanl tanhf trunc truncf truncl])
56 AC_DEFUN([gl_MATH_MODULE_INDICATOR],
58   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
59   AC_REQUIRE([gl_MATH_H_DEFAULTS])
60   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
61   dnl Define it also as a C macro, for the benefit of the unit tests.
62   gl_MODULE_INDICATOR_FOR_TESTS([$1])
65 AC_DEFUN([gl_MATH_H_DEFAULTS],
67   GNULIB_ACOSF=0;      AC_SUBST([GNULIB_ACOSF])
68   GNULIB_ACOSL=0;      AC_SUBST([GNULIB_ACOSL])
69   GNULIB_ASINF=0;      AC_SUBST([GNULIB_ASINF])
70   GNULIB_ASINL=0;      AC_SUBST([GNULIB_ASINL])
71   GNULIB_ATANF=0;      AC_SUBST([GNULIB_ATANF])
72   GNULIB_ATANL=0;      AC_SUBST([GNULIB_ATANL])
73   GNULIB_ATAN2F=0;     AC_SUBST([GNULIB_ATAN2F])
74   GNULIB_CBRT=0;       AC_SUBST([GNULIB_CBRT])
75   GNULIB_CBRTF=0;      AC_SUBST([GNULIB_CBRTF])
76   GNULIB_CBRTL=0;      AC_SUBST([GNULIB_CBRTL])
77   GNULIB_CEIL=0;       AC_SUBST([GNULIB_CEIL])
78   GNULIB_CEILF=0;      AC_SUBST([GNULIB_CEILF])
79   GNULIB_CEILL=0;      AC_SUBST([GNULIB_CEILL])
80   GNULIB_COPYSIGN=0;   AC_SUBST([GNULIB_COPYSIGN])
81   GNULIB_COPYSIGNF=0;  AC_SUBST([GNULIB_COPYSIGNF])
82   GNULIB_COPYSIGNL=0;  AC_SUBST([GNULIB_COPYSIGNL])
83   GNULIB_COSF=0;       AC_SUBST([GNULIB_COSF])
84   GNULIB_COSL=0;       AC_SUBST([GNULIB_COSL])
85   GNULIB_COSHF=0;      AC_SUBST([GNULIB_COSHF])
86   GNULIB_EXPF=0;       AC_SUBST([GNULIB_EXPF])
87   GNULIB_EXPL=0;       AC_SUBST([GNULIB_EXPL])
88   GNULIB_EXP2=0;       AC_SUBST([GNULIB_EXP2])
89   GNULIB_EXP2F=0;      AC_SUBST([GNULIB_EXP2F])
90   GNULIB_EXP2L=0;      AC_SUBST([GNULIB_EXP2L])
91   GNULIB_EXPM1=0;      AC_SUBST([GNULIB_EXPM1])
92   GNULIB_EXPM1F=0;     AC_SUBST([GNULIB_EXPM1F])
93   GNULIB_EXPM1L=0;     AC_SUBST([GNULIB_EXPM1L])
94   GNULIB_FABSF=0;      AC_SUBST([GNULIB_FABSF])
95   GNULIB_FABSL=0;      AC_SUBST([GNULIB_FABSL])
96   GNULIB_FLOOR=0;      AC_SUBST([GNULIB_FLOOR])
97   GNULIB_FLOORF=0;     AC_SUBST([GNULIB_FLOORF])
98   GNULIB_FLOORL=0;     AC_SUBST([GNULIB_FLOORL])
99   GNULIB_FMA=0;        AC_SUBST([GNULIB_FMA])
100   GNULIB_FMAF=0;       AC_SUBST([GNULIB_FMAF])
101   GNULIB_FMAL=0;       AC_SUBST([GNULIB_FMAL])
102   GNULIB_FMOD=0;       AC_SUBST([GNULIB_FMOD])
103   GNULIB_FMODF=0;      AC_SUBST([GNULIB_FMODF])
104   GNULIB_FMODL=0;      AC_SUBST([GNULIB_FMODL])
105   GNULIB_FREXPF=0;     AC_SUBST([GNULIB_FREXPF])
106   GNULIB_FREXP=0;      AC_SUBST([GNULIB_FREXP])
107   GNULIB_FREXPL=0;     AC_SUBST([GNULIB_FREXPL])
108   GNULIB_HYPOT=0;      AC_SUBST([GNULIB_HYPOT])
109   GNULIB_HYPOTF=0;     AC_SUBST([GNULIB_HYPOTF])
110   GNULIB_HYPOTL=0;     AC_SUBST([GNULIB_HYPOTL])
111   GNULIB_ILOGB=0;      AC_SUBST([GNULIB_ILOGB])
112   GNULIB_ILOGBF=0;     AC_SUBST([GNULIB_ILOGBF])
113   GNULIB_ILOGBL=0;     AC_SUBST([GNULIB_ILOGBL])
114   GNULIB_ISFINITE=0;   AC_SUBST([GNULIB_ISFINITE])
115   GNULIB_ISINF=0;      AC_SUBST([GNULIB_ISINF])
116   GNULIB_ISNAN=0;      AC_SUBST([GNULIB_ISNAN])
117   GNULIB_ISNANF=0;     AC_SUBST([GNULIB_ISNANF])
118   GNULIB_ISNAND=0;     AC_SUBST([GNULIB_ISNAND])
119   GNULIB_ISNANL=0;     AC_SUBST([GNULIB_ISNANL])
120   GNULIB_LDEXPF=0;     AC_SUBST([GNULIB_LDEXPF])
121   GNULIB_LDEXPL=0;     AC_SUBST([GNULIB_LDEXPL])
122   GNULIB_LOG=0;        AC_SUBST([GNULIB_LOG])
123   GNULIB_LOGF=0;       AC_SUBST([GNULIB_LOGF])
124   GNULIB_LOGL=0;       AC_SUBST([GNULIB_LOGL])
125   GNULIB_LOG10=0;      AC_SUBST([GNULIB_LOG10])
126   GNULIB_LOG10F=0;     AC_SUBST([GNULIB_LOG10F])
127   GNULIB_LOG10L=0;     AC_SUBST([GNULIB_LOG10L])
128   GNULIB_LOG1P=0;      AC_SUBST([GNULIB_LOG1P])
129   GNULIB_LOG1PF=0;     AC_SUBST([GNULIB_LOG1PF])
130   GNULIB_LOG1PL=0;     AC_SUBST([GNULIB_LOG1PL])
131   GNULIB_LOG2=0;       AC_SUBST([GNULIB_LOG2])
132   GNULIB_LOG2F=0;      AC_SUBST([GNULIB_LOG2F])
133   GNULIB_LOG2L=0;      AC_SUBST([GNULIB_LOG2L])
134   GNULIB_LOGB=0;       AC_SUBST([GNULIB_LOGB])
135   GNULIB_LOGBF=0;      AC_SUBST([GNULIB_LOGBF])
136   GNULIB_LOGBL=0;      AC_SUBST([GNULIB_LOGBL])
137   GNULIB_MODF=0;       AC_SUBST([GNULIB_MODF])
138   GNULIB_MODFF=0;      AC_SUBST([GNULIB_MODFF])
139   GNULIB_MODFL=0;      AC_SUBST([GNULIB_MODFL])
140   GNULIB_POWF=0;       AC_SUBST([GNULIB_POWF])
141   GNULIB_REMAINDER=0;  AC_SUBST([GNULIB_REMAINDER])
142   GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF])
143   GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL])
144   GNULIB_RINT=0;       AC_SUBST([GNULIB_RINT])
145   GNULIB_RINTF=0;      AC_SUBST([GNULIB_RINTF])
146   GNULIB_RINTL=0;      AC_SUBST([GNULIB_RINTL])
147   GNULIB_ROUND=0;      AC_SUBST([GNULIB_ROUND])
148   GNULIB_ROUNDF=0;     AC_SUBST([GNULIB_ROUNDF])
149   GNULIB_ROUNDL=0;     AC_SUBST([GNULIB_ROUNDL])
150   GNULIB_SIGNBIT=0;    AC_SUBST([GNULIB_SIGNBIT])
151   GNULIB_SINF=0;       AC_SUBST([GNULIB_SINF])
152   GNULIB_SINL=0;       AC_SUBST([GNULIB_SINL])
153   GNULIB_SINHF=0;      AC_SUBST([GNULIB_SINHF])
154   GNULIB_SQRTF=0;      AC_SUBST([GNULIB_SQRTF])
155   GNULIB_SQRTL=0;      AC_SUBST([GNULIB_SQRTL])
156   GNULIB_TANF=0;       AC_SUBST([GNULIB_TANF])
157   GNULIB_TANL=0;       AC_SUBST([GNULIB_TANL])
158   GNULIB_TANHF=0;      AC_SUBST([GNULIB_TANHF])
159   GNULIB_TRUNC=0;      AC_SUBST([GNULIB_TRUNC])
160   GNULIB_TRUNCF=0;     AC_SUBST([GNULIB_TRUNCF])
161   GNULIB_TRUNCL=0;     AC_SUBST([GNULIB_TRUNCL])
162   dnl Support Microsoft deprecated alias function names by default.
163   GNULIB_MDA_J0=1;     AC_SUBST([GNULIB_MDA_J0])
164   GNULIB_MDA_J1=1;     AC_SUBST([GNULIB_MDA_J1])
165   GNULIB_MDA_JN=1;     AC_SUBST([GNULIB_MDA_JN])
166   GNULIB_MDA_Y0=1;     AC_SUBST([GNULIB_MDA_Y0])
167   GNULIB_MDA_Y1=1;     AC_SUBST([GNULIB_MDA_Y1])
168   GNULIB_MDA_YN=1;     AC_SUBST([GNULIB_MDA_YN])
169   dnl Assume proper GNU behavior unless another module says otherwise.
170   HAVE_ACOSF=1;                     AC_SUBST([HAVE_ACOSF])
171   HAVE_ACOSL=1;                     AC_SUBST([HAVE_ACOSL])
172   HAVE_ASINF=1;                     AC_SUBST([HAVE_ASINF])
173   HAVE_ASINL=1;                     AC_SUBST([HAVE_ASINL])
174   HAVE_ATANF=1;                     AC_SUBST([HAVE_ATANF])
175   HAVE_ATANL=1;                     AC_SUBST([HAVE_ATANL])
176   HAVE_ATAN2F=1;                    AC_SUBST([HAVE_ATAN2F])
177   HAVE_CBRT=1;                      AC_SUBST([HAVE_CBRT])
178   HAVE_CBRTF=1;                     AC_SUBST([HAVE_CBRTF])
179   HAVE_CBRTL=1;                     AC_SUBST([HAVE_CBRTL])
180   HAVE_COPYSIGN=1;                  AC_SUBST([HAVE_COPYSIGN])
181   HAVE_COPYSIGNL=1;                 AC_SUBST([HAVE_COPYSIGNL])
182   HAVE_COSF=1;                      AC_SUBST([HAVE_COSF])
183   HAVE_COSL=1;                      AC_SUBST([HAVE_COSL])
184   HAVE_COSHF=1;                     AC_SUBST([HAVE_COSHF])
185   HAVE_EXPF=1;                      AC_SUBST([HAVE_EXPF])
186   HAVE_EXPL=1;                      AC_SUBST([HAVE_EXPL])
187   HAVE_EXPM1=1;                     AC_SUBST([HAVE_EXPM1])
188   HAVE_EXPM1F=1;                    AC_SUBST([HAVE_EXPM1F])
189   HAVE_FABSF=1;                     AC_SUBST([HAVE_FABSF])
190   HAVE_FABSL=1;                     AC_SUBST([HAVE_FABSL])
191   HAVE_FMA=1;                       AC_SUBST([HAVE_FMA])
192   HAVE_FMAF=1;                      AC_SUBST([HAVE_FMAF])
193   HAVE_FMAL=1;                      AC_SUBST([HAVE_FMAL])
194   HAVE_FMODF=1;                     AC_SUBST([HAVE_FMODF])
195   HAVE_FMODL=1;                     AC_SUBST([HAVE_FMODL])
196   HAVE_FREXPF=1;                    AC_SUBST([HAVE_FREXPF])
197   HAVE_HYPOTF=1;                    AC_SUBST([HAVE_HYPOTF])
198   HAVE_HYPOTL=1;                    AC_SUBST([HAVE_HYPOTL])
199   HAVE_ILOGB=1;                     AC_SUBST([HAVE_ILOGB])
200   HAVE_ILOGBF=1;                    AC_SUBST([HAVE_ILOGBF])
201   HAVE_ILOGBL=1;                    AC_SUBST([HAVE_ILOGBL])
202   HAVE_ISNANF=1;                    AC_SUBST([HAVE_ISNANF])
203   HAVE_ISNAND=1;                    AC_SUBST([HAVE_ISNAND])
204   HAVE_ISNANL=1;                    AC_SUBST([HAVE_ISNANL])
205   HAVE_LDEXPF=1;                    AC_SUBST([HAVE_LDEXPF])
206   HAVE_LOGF=1;                      AC_SUBST([HAVE_LOGF])
207   HAVE_LOGL=1;                      AC_SUBST([HAVE_LOGL])
208   HAVE_LOG10F=1;                    AC_SUBST([HAVE_LOG10F])
209   HAVE_LOG10L=1;                    AC_SUBST([HAVE_LOG10L])
210   HAVE_LOG1P=1;                     AC_SUBST([HAVE_LOG1P])
211   HAVE_LOG1PF=1;                    AC_SUBST([HAVE_LOG1PF])
212   HAVE_LOG1PL=1;                    AC_SUBST([HAVE_LOG1PL])
213   HAVE_LOGBF=1;                     AC_SUBST([HAVE_LOGBF])
214   HAVE_LOGBL=1;                     AC_SUBST([HAVE_LOGBL])
215   HAVE_MODFF=1;                     AC_SUBST([HAVE_MODFF])
216   HAVE_MODFL=1;                     AC_SUBST([HAVE_MODFL])
217   HAVE_POWF=1;                      AC_SUBST([HAVE_POWF])
218   HAVE_REMAINDER=1;                 AC_SUBST([HAVE_REMAINDER])
219   HAVE_REMAINDERF=1;                AC_SUBST([HAVE_REMAINDERF])
220   HAVE_RINT=1;                      AC_SUBST([HAVE_RINT])
221   HAVE_RINTL=1;                     AC_SUBST([HAVE_RINTL])
222   HAVE_SINF=1;                      AC_SUBST([HAVE_SINF])
223   HAVE_SINL=1;                      AC_SUBST([HAVE_SINL])
224   HAVE_SINHF=1;                     AC_SUBST([HAVE_SINHF])
225   HAVE_SQRTF=1;                     AC_SUBST([HAVE_SQRTF])
226   HAVE_SQRTL=1;                     AC_SUBST([HAVE_SQRTL])
227   HAVE_TANF=1;                      AC_SUBST([HAVE_TANF])
228   HAVE_TANL=1;                      AC_SUBST([HAVE_TANL])
229   HAVE_TANHF=1;                     AC_SUBST([HAVE_TANHF])
230   HAVE_DECL_ACOSL=1;                AC_SUBST([HAVE_DECL_ACOSL])
231   HAVE_DECL_ASINL=1;                AC_SUBST([HAVE_DECL_ASINL])
232   HAVE_DECL_ATANL=1;                AC_SUBST([HAVE_DECL_ATANL])
233   HAVE_DECL_CBRTF=1;                AC_SUBST([HAVE_DECL_CBRTF])
234   HAVE_DECL_CBRTL=1;                AC_SUBST([HAVE_DECL_CBRTL])
235   HAVE_DECL_CEILF=1;                AC_SUBST([HAVE_DECL_CEILF])
236   HAVE_DECL_CEILL=1;                AC_SUBST([HAVE_DECL_CEILL])
237   HAVE_DECL_COPYSIGNF=1;            AC_SUBST([HAVE_DECL_COPYSIGNF])
238   HAVE_DECL_COSL=1;                 AC_SUBST([HAVE_DECL_COSL])
239   HAVE_DECL_EXPL=1;                 AC_SUBST([HAVE_DECL_EXPL])
240   HAVE_DECL_EXP2=1;                 AC_SUBST([HAVE_DECL_EXP2])
241   HAVE_DECL_EXP2F=1;                AC_SUBST([HAVE_DECL_EXP2F])
242   HAVE_DECL_EXP2L=1;                AC_SUBST([HAVE_DECL_EXP2L])
243   HAVE_DECL_EXPM1L=1;               AC_SUBST([HAVE_DECL_EXPM1L])
244   HAVE_DECL_FLOORF=1;               AC_SUBST([HAVE_DECL_FLOORF])
245   HAVE_DECL_FLOORL=1;               AC_SUBST([HAVE_DECL_FLOORL])
246   HAVE_DECL_FREXPL=1;               AC_SUBST([HAVE_DECL_FREXPL])
247   HAVE_DECL_LDEXPL=1;               AC_SUBST([HAVE_DECL_LDEXPL])
248   HAVE_DECL_LOGL=1;                 AC_SUBST([HAVE_DECL_LOGL])
249   HAVE_DECL_LOG10L=1;               AC_SUBST([HAVE_DECL_LOG10L])
250   HAVE_DECL_LOG2=1;                 AC_SUBST([HAVE_DECL_LOG2])
251   HAVE_DECL_LOG2F=1;                AC_SUBST([HAVE_DECL_LOG2F])
252   HAVE_DECL_LOG2L=1;                AC_SUBST([HAVE_DECL_LOG2L])
253   HAVE_DECL_LOGB=1;                 AC_SUBST([HAVE_DECL_LOGB])
254   HAVE_DECL_REMAINDER=1;            AC_SUBST([HAVE_DECL_REMAINDER])
255   HAVE_DECL_REMAINDERL=1;           AC_SUBST([HAVE_DECL_REMAINDERL])
256   HAVE_DECL_RINTF=1;                AC_SUBST([HAVE_DECL_RINTF])
257   HAVE_DECL_ROUND=1;                AC_SUBST([HAVE_DECL_ROUND])
258   HAVE_DECL_ROUNDF=1;               AC_SUBST([HAVE_DECL_ROUNDF])
259   HAVE_DECL_ROUNDL=1;               AC_SUBST([HAVE_DECL_ROUNDL])
260   HAVE_DECL_SINL=1;                 AC_SUBST([HAVE_DECL_SINL])
261   HAVE_DECL_SQRTL=1;                AC_SUBST([HAVE_DECL_SQRTL])
262   HAVE_DECL_TANL=1;                 AC_SUBST([HAVE_DECL_TANL])
263   HAVE_DECL_TRUNC=1;                AC_SUBST([HAVE_DECL_TRUNC])
264   HAVE_DECL_TRUNCF=1;               AC_SUBST([HAVE_DECL_TRUNCF])
265   HAVE_DECL_TRUNCL=1;               AC_SUBST([HAVE_DECL_TRUNCL])
266   REPLACE_ACOSF=0;                  AC_SUBST([REPLACE_ACOSF])
267   REPLACE_ASINF=0;                  AC_SUBST([REPLACE_ASINF])
268   REPLACE_ATANF=0;                  AC_SUBST([REPLACE_ATANF])
269   REPLACE_ATAN2F=0;                 AC_SUBST([REPLACE_ATAN2F])
270   REPLACE_CBRTF=0;                  AC_SUBST([REPLACE_CBRTF])
271   REPLACE_CBRTL=0;                  AC_SUBST([REPLACE_CBRTL])
272   REPLACE_CEIL=0;                   AC_SUBST([REPLACE_CEIL])
273   REPLACE_CEILF=0;                  AC_SUBST([REPLACE_CEILF])
274   REPLACE_CEILL=0;                  AC_SUBST([REPLACE_CEILL])
275   REPLACE_COSF=0;                   AC_SUBST([REPLACE_COSF])
276   REPLACE_COSHF=0;                  AC_SUBST([REPLACE_COSHF])
277   REPLACE_EXPF=0;                   AC_SUBST([REPLACE_EXPF])
278   REPLACE_EXPL=0;                   AC_SUBST([REPLACE_EXPL])
279   REPLACE_EXPM1=0;                  AC_SUBST([REPLACE_EXPM1])
280   REPLACE_EXPM1F=0;                 AC_SUBST([REPLACE_EXPM1F])
281   REPLACE_EXPM1L=0;                 AC_SUBST([REPLACE_EXPM1L])
282   REPLACE_EXP2=0;                   AC_SUBST([REPLACE_EXP2])
283   REPLACE_EXP2L=0;                  AC_SUBST([REPLACE_EXP2L])
284   REPLACE_FABSL=0;                  AC_SUBST([REPLACE_FABSL])
285   REPLACE_FLOOR=0;                  AC_SUBST([REPLACE_FLOOR])
286   REPLACE_FLOORF=0;                 AC_SUBST([REPLACE_FLOORF])
287   REPLACE_FLOORL=0;                 AC_SUBST([REPLACE_FLOORL])
288   REPLACE_FMA=0;                    AC_SUBST([REPLACE_FMA])
289   REPLACE_FMAF=0;                   AC_SUBST([REPLACE_FMAF])
290   REPLACE_FMAL=0;                   AC_SUBST([REPLACE_FMAL])
291   REPLACE_FMOD=0;                   AC_SUBST([REPLACE_FMOD])
292   REPLACE_FMODF=0;                  AC_SUBST([REPLACE_FMODF])
293   REPLACE_FMODL=0;                  AC_SUBST([REPLACE_FMODL])
294   REPLACE_FREXPF=0;                 AC_SUBST([REPLACE_FREXPF])
295   REPLACE_FREXP=0;                  AC_SUBST([REPLACE_FREXP])
296   REPLACE_FREXPL=0;                 AC_SUBST([REPLACE_FREXPL])
297   REPLACE_HUGE_VAL=0;               AC_SUBST([REPLACE_HUGE_VAL])
298   REPLACE_HYPOT=0;                  AC_SUBST([REPLACE_HYPOT])
299   REPLACE_HYPOTF=0;                 AC_SUBST([REPLACE_HYPOTF])
300   REPLACE_HYPOTL=0;                 AC_SUBST([REPLACE_HYPOTL])
301   REPLACE_ILOGB=0;                  AC_SUBST([REPLACE_ILOGB])
302   REPLACE_ILOGBF=0;                 AC_SUBST([REPLACE_ILOGBF])
303   REPLACE_ILOGBL=0;                 AC_SUBST([REPLACE_ILOGBL])
304   REPLACE_ISFINITE=0;               AC_SUBST([REPLACE_ISFINITE])
305   REPLACE_ISINF=0;                  AC_SUBST([REPLACE_ISINF])
306   REPLACE_ISNAN=0;                  AC_SUBST([REPLACE_ISNAN])
307   REPLACE_LDEXPL=0;                 AC_SUBST([REPLACE_LDEXPL])
308   REPLACE_LOG=0;                    AC_SUBST([REPLACE_LOG])
309   REPLACE_LOGF=0;                   AC_SUBST([REPLACE_LOGF])
310   REPLACE_LOGL=0;                   AC_SUBST([REPLACE_LOGL])
311   REPLACE_LOG10=0;                  AC_SUBST([REPLACE_LOG10])
312   REPLACE_LOG10F=0;                 AC_SUBST([REPLACE_LOG10F])
313   REPLACE_LOG10L=0;                 AC_SUBST([REPLACE_LOG10L])
314   REPLACE_LOG1P=0;                  AC_SUBST([REPLACE_LOG1P])
315   REPLACE_LOG1PF=0;                 AC_SUBST([REPLACE_LOG1PF])
316   REPLACE_LOG1PL=0;                 AC_SUBST([REPLACE_LOG1PL])
317   REPLACE_LOG2=0;                   AC_SUBST([REPLACE_LOG2])
318   REPLACE_LOG2F=0;                  AC_SUBST([REPLACE_LOG2F])
319   REPLACE_LOG2L=0;                  AC_SUBST([REPLACE_LOG2L])
320   REPLACE_LOGB=0;                   AC_SUBST([REPLACE_LOGB])
321   REPLACE_LOGBF=0;                  AC_SUBST([REPLACE_LOGBF])
322   REPLACE_LOGBL=0;                  AC_SUBST([REPLACE_LOGBL])
323   REPLACE_MODF=0;                   AC_SUBST([REPLACE_MODF])
324   REPLACE_MODFF=0;                  AC_SUBST([REPLACE_MODFF])
325   REPLACE_MODFL=0;                  AC_SUBST([REPLACE_MODFL])
326   REPLACE_NAN=0;                    AC_SUBST([REPLACE_NAN])
327   REPLACE_REMAINDER=0;              AC_SUBST([REPLACE_REMAINDER])
328   REPLACE_REMAINDERF=0;             AC_SUBST([REPLACE_REMAINDERF])
329   REPLACE_REMAINDERL=0;             AC_SUBST([REPLACE_REMAINDERL])
330   REPLACE_RINTL=0;                  AC_SUBST([REPLACE_RINTL])
331   REPLACE_ROUND=0;                  AC_SUBST([REPLACE_ROUND])
332   REPLACE_ROUNDF=0;                 AC_SUBST([REPLACE_ROUNDF])
333   REPLACE_ROUNDL=0;                 AC_SUBST([REPLACE_ROUNDL])
334   REPLACE_SIGNBIT=0;                AC_SUBST([REPLACE_SIGNBIT])
335   REPLACE_SIGNBIT_USING_BUILTINS=0; AC_SUBST([REPLACE_SIGNBIT_USING_BUILTINS])
336   REPLACE_SINF=0;                   AC_SUBST([REPLACE_SINF])
337   REPLACE_SINHF=0;                  AC_SUBST([REPLACE_SINHF])
338   REPLACE_SQRTF=0;                  AC_SUBST([REPLACE_SQRTF])
339   REPLACE_SQRTL=0;                  AC_SUBST([REPLACE_SQRTL])
340   REPLACE_TANF=0;                   AC_SUBST([REPLACE_TANF])
341   REPLACE_TANHF=0;                  AC_SUBST([REPLACE_TANHF])
342   REPLACE_TRUNC=0;                  AC_SUBST([REPLACE_TRUNC])
343   REPLACE_TRUNCF=0;                 AC_SUBST([REPLACE_TRUNCF])
344   REPLACE_TRUNCL=0;                 AC_SUBST([REPLACE_TRUNCL])
347 # gl_LONG_DOUBLE_VS_DOUBLE
348 # determines whether 'long double' and 'double' have the same representation.
349 # Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines
350 # HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly.
351 # The currently known platforms where this is the case are:
352 # Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9.
353 AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE],
355   AC_CACHE_CHECK([whether long double and double are the same],
356     [gl_cv_long_double_equals_double],
357     [AC_COMPILE_IFELSE(
358        [AC_LANG_PROGRAM([[#include <float.h>]],
359           [[typedef int check[sizeof (long double) == sizeof (double)
360                               && LDBL_MANT_DIG == DBL_MANT_DIG
361                               && LDBL_MAX_EXP == DBL_MAX_EXP
362                               && LDBL_MIN_EXP == DBL_MIN_EXP
363                               ? 1 : -1];
364           ]])],
365        [gl_cv_long_double_equals_double=yes],
366        [gl_cv_long_double_equals_double=no])
367     ])
368   if test $gl_cv_long_double_equals_double = yes; then
369     AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
370       [Define to 1 if 'long double' and 'double' have the same representation.])
371     HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
372   else
373     HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
374   fi
375   AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])