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