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