1 /* A GNU-like <math.h>. 2 3 Copyright (C) 2002-2003, 2007-2022 Free Software Foundation, Inc. 4 5 This file is free software: you can redistribute it and/or modify 6 it under the terms of the GNU Lesser General Public License as 7 published by the Free Software Foundation; either version 2.1 of the 8 License, or (at your option) any later version. 9 10 This file is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public License 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 17 18 #ifndef _@GUARD_PREFIX@_MATH_H 19 20 #if __GNUC__ >= 3 21 @PRAGMA_SYSTEM_HEADER@ 22 #endif 23 @PRAGMA_COLUMNS@ 24 25 #if defined _GL_INCLUDING_MATH_H 26 /* Special invocation convention: 27 - On FreeBSD 12.2 we have a sequence of nested includes 28 <math.h> -> <stdlib.h> -> <sys/wait.h> -> <sys/types.h> -> <sys/select.h> 29 -> <signal.h> -> <pthread.h> -> <stdlib.h> -> <math.h> 30 In this situation, the functions are not yet declared, therefore we cannot 31 provide the C++ aliases. */ 32 33 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ 34 35 #else 36 /* Normal invocation convention. */ 37 38 /* The include_next requires a split double-inclusion guard. */ 39 #define _GL_INCLUDING_MATH_H 40 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ 41 #undef _GL_INCLUDING_MATH_H 42 43 #ifndef _@GUARD_PREFIX@_MATH_H 44 #define _@GUARD_PREFIX@_MATH_H 45 46 /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */ 47 #if defined __VMS && ! defined NAN 48 # include <fp.h> 49 #endif 50 51 #ifndef _GL_INLINE_HEADER_BEGIN 52 #error "Please include config.h first." 53 #endif 54 _GL_INLINE_HEADER_BEGIN 55 #ifndef _GL_MATH_INLINE 56 # define _GL_MATH_INLINE _GL_INLINE 57 #endif 58 59 /* The __attribute__ feature is available in gcc versions 2.5 and later. 60 The attribute __const__ was added in gcc 2.95. */ 61 #ifndef _GL_ATTRIBUTE_CONST 62 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ 63 # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) 64 # else 65 # define _GL_ATTRIBUTE_CONST /* empty */ 66 # endif 67 #endif 68 69 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ 70 71 /* The definition of _GL_ARG_NONNULL is copied here. */ 72 73 /* The definition of _GL_WARN_ON_USE is copied here. */ 74 75 #ifdef __cplusplus 76 /* Helper macros to define type-generic function FUNC as overloaded functions, 77 rather than as macros like in C. POSIX declares these with an argument of 78 real-floating (that is, one of float, double, or long double). */ 79 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \ 80 static inline int \ 81 _gl_cxx_ ## func ## f (float f) \ 82 { \ 83 return func (f); \ 84 } \ 85 static inline int \ 86 _gl_cxx_ ## func ## d (double d) \ 87 { \ 88 return func (d); \ 89 } \ 90 static inline int \ 91 _gl_cxx_ ## func ## l (long double l) \ 92 { \ 93 return func (l); \ 94 } 95 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \ 96 _GL_BEGIN_NAMESPACE \ 97 inline rettype \ 98 rpl_func (float f) \ 99 { \ 100 return _gl_cxx_ ## func ## f (f); \ 101 } \ 102 inline rettype \ 103 rpl_func (double d) \ 104 { \ 105 return _gl_cxx_ ## func ## d (d); \ 106 } \ 107 inline rettype \ 108 rpl_func (long double l) \ 109 { \ 110 return _gl_cxx_ ## func ## l (l); \ 111 } \ 112 _GL_END_NAMESPACE 113 #endif 114 115 /* Helper macros to define a portability warning for the 116 classification macro FUNC called with VALUE. POSIX declares the 117 classification macros with an argument of real-floating (that is, 118 one of float, double, or long double). */ 119 #define _GL_WARN_REAL_FLOATING_DECL(func) \ 120 _GL_MATH_INLINE int \ 121 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \ 122 "use gnulib module " #func " for portability") \ 123 rpl_ ## func ## f (float f) \ 124 { \ 125 return func (f); \ 126 } \ 127 _GL_MATH_INLINE int \ 128 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \ 129 "use gnulib module " #func " for portability") \ 130 rpl_ ## func ## d (double d) \ 131 { \ 132 return func (d); \ 133 } \ 134 _GL_MATH_INLINE int \ 135 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \ 136 "use gnulib module " #func " for portability") \ 137 rpl_ ## func ## l (long double l) \ 138 { \ 139 return func (l); \ 140 } 141 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \ 142 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \ 143 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \ 144 : rpl_ ## func ## l (value)) 145 146 147 #if @REPLACE_ITOLD@ 148 /* Pull in a function that fixes the 'int' to 'long double' conversion 149 of glibc 2.7. */ 150 _GL_EXTERN_C void _Qp_itoq (long double *, int); 151 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq; 152 #endif 153 154 155 /* POSIX allows platforms that don't support NAN. But all major 156 machines in the past 15 years have supported something close to 157 IEEE NaN, so we define this unconditionally. We also must define 158 it on platforms like Solaris 10, where NAN is present but defined 159 as a function pointer rather than a floating point constant. */ 160 #if !defined NAN || @REPLACE_NAN@ 161 # if !GNULIB_defined_NAN 162 # undef NAN 163 /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler 164 choke on the expression 0.0 / 0.0. */ 165 # if defined __DECC || defined _MSC_VER 166 _GL_MATH_INLINE float 167 _NaN () 168 { 169 static float zero = 0.0f; 170 return zero / zero; 171 } 172 # define NAN (_NaN()) 173 # else 174 # define NAN (0.0f / 0.0f) 175 # endif 176 # define GNULIB_defined_NAN 1 177 # endif 178 #endif 179 180 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather 181 than a floating point constant. */ 182 #if @REPLACE_HUGE_VAL@ 183 # undef HUGE_VALF 184 # define HUGE_VALF (1.0f / 0.0f) 185 # undef HUGE_VAL 186 # define HUGE_VAL (1.0 / 0.0) 187 # undef HUGE_VALL 188 # define HUGE_VALL (1.0L / 0.0L) 189 #endif 190 191 /* HUGE_VALF is a 'float' Infinity. */ 192 #ifndef HUGE_VALF 193 # if defined _MSC_VER 194 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */ 195 # define HUGE_VALF (1e25f * 1e25f) 196 # else 197 # define HUGE_VALF (1.0f / 0.0f) 198 # endif 199 #endif 200 201 /* HUGE_VAL is a 'double' Infinity. */ 202 #ifndef HUGE_VAL 203 # if defined _MSC_VER 204 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */ 205 # define HUGE_VAL (1e250 * 1e250) 206 # else 207 # define HUGE_VAL (1.0 / 0.0) 208 # endif 209 #endif 210 211 /* HUGE_VALL is a 'long double' Infinity. */ 212 #ifndef HUGE_VALL 213 # if defined _MSC_VER 214 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */ 215 # define HUGE_VALL (1e250L * 1e250L) 216 # else 217 # define HUGE_VALL (1.0L / 0.0L) 218 # endif 219 #endif 220 221 222 #if defined FP_ILOGB0 && defined FP_ILOGBNAN 223 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct. */ 224 # if defined __HAIKU__ 225 /* Haiku: match what ilogb() does */ 226 # undef FP_ILOGB0 227 # undef FP_ILOGBNAN 228 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ 229 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */ 230 # endif 231 #else 232 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */ 233 # if defined __NetBSD__ || defined __sgi 234 /* NetBSD, IRIX 6.5: match what ilogb() does */ 235 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ 236 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */ 237 # elif defined _AIX 238 /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */ 239 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ 240 # define FP_ILOGBNAN 2147483647 /* INT_MAX */ 241 # elif defined __sun 242 /* Solaris 9: match what ilogb() does */ 243 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */ 244 # define FP_ILOGBNAN 2147483647 /* INT_MAX */ 245 # else 246 /* Gnulib defined values. */ 247 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */ 248 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */ 249 # endif 250 #endif 251 252 253 #if @GNULIB_ACOSF@ 254 # if @REPLACE_ACOSF@ 255 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 256 # undef acosf 257 # define acosf rpl_acosf 258 # endif 259 _GL_FUNCDECL_RPL (acosf, float, (float x)); 260 _GL_CXXALIAS_RPL (acosf, float, (float x)); 261 # else 262 # if !@HAVE_ACOSF@ 263 # undef acosf 264 _GL_FUNCDECL_SYS (acosf, float, (float x)); 265 # endif 266 _GL_CXXALIAS_SYS (acosf, float, (float x)); 267 # endif 268 _GL_CXXALIASWARN (acosf); 269 #elif defined GNULIB_POSIXCHECK 270 # undef acosf 271 # if HAVE_RAW_DECL_ACOSF 272 _GL_WARN_ON_USE (acosf, "acosf is unportable - " 273 "use gnulib module acosf for portability"); 274 # endif 275 #endif 276 277 #if @GNULIB_ACOSL@ 278 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@ 279 # undef acosl 280 _GL_FUNCDECL_SYS (acosl, long double, (long double x)); 281 # endif 282 _GL_CXXALIAS_SYS (acosl, long double, (long double x)); 283 # if __GLIBC__ >= 2 284 _GL_CXXALIASWARN (acosl); 285 # endif 286 #elif defined GNULIB_POSIXCHECK 287 # undef acosl 288 # if HAVE_RAW_DECL_ACOSL 289 _GL_WARN_ON_USE (acosl, "acosl is unportable - " 290 "use gnulib module acosl for portability"); 291 # endif 292 #endif 293 294 295 #if @GNULIB_ASINF@ 296 # if @REPLACE_ASINF@ 297 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 298 # undef asinf 299 # define asinf rpl_asinf 300 # endif 301 _GL_FUNCDECL_RPL (asinf, float, (float x)); 302 _GL_CXXALIAS_RPL (asinf, float, (float x)); 303 # else 304 # if !@HAVE_ASINF@ 305 # undef asinf 306 _GL_FUNCDECL_SYS (asinf, float, (float x)); 307 # endif 308 _GL_CXXALIAS_SYS (asinf, float, (float x)); 309 # endif 310 _GL_CXXALIASWARN (asinf); 311 #elif defined GNULIB_POSIXCHECK 312 # undef asinf 313 # if HAVE_RAW_DECL_ASINF 314 _GL_WARN_ON_USE (asinf, "asinf is unportable - " 315 "use gnulib module asinf for portability"); 316 # endif 317 #endif 318 319 #if @GNULIB_ASINL@ 320 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@ 321 # undef asinl 322 _GL_FUNCDECL_SYS (asinl, long double, (long double x)); 323 # endif 324 _GL_CXXALIAS_SYS (asinl, long double, (long double x)); 325 # if __GLIBC__ >= 2 326 _GL_CXXALIASWARN (asinl); 327 # endif 328 #elif defined GNULIB_POSIXCHECK 329 # undef asinl 330 # if HAVE_RAW_DECL_ASINL 331 _GL_WARN_ON_USE (asinl, "asinl is unportable - " 332 "use gnulib module asinl for portability"); 333 # endif 334 #endif 335 336 337 #if @GNULIB_ATANF@ 338 # if @REPLACE_ATANF@ 339 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 340 # undef atanf 341 # define atanf rpl_atanf 342 # endif 343 _GL_FUNCDECL_RPL (atanf, float, (float x)); 344 _GL_CXXALIAS_RPL (atanf, float, (float x)); 345 # else 346 # if !@HAVE_ATANF@ 347 # undef atanf 348 _GL_FUNCDECL_SYS (atanf, float, (float x)); 349 # endif 350 _GL_CXXALIAS_SYS (atanf, float, (float x)); 351 # endif 352 _GL_CXXALIASWARN (atanf); 353 #elif defined GNULIB_POSIXCHECK 354 # undef atanf 355 # if HAVE_RAW_DECL_ATANF 356 _GL_WARN_ON_USE (atanf, "atanf is unportable - " 357 "use gnulib module atanf for portability"); 358 # endif 359 #endif 360 361 #if @GNULIB_ATANL@ 362 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@ 363 # undef atanl 364 _GL_FUNCDECL_SYS (atanl, long double, (long double x)); 365 # endif 366 _GL_CXXALIAS_SYS (atanl, long double, (long double x)); 367 # if __GLIBC__ >= 2 368 _GL_CXXALIASWARN (atanl); 369 # endif 370 #elif defined GNULIB_POSIXCHECK 371 # undef atanl 372 # if HAVE_RAW_DECL_ATANL 373 _GL_WARN_ON_USE (atanl, "atanl is unportable - " 374 "use gnulib module atanl for portability"); 375 # endif 376 #endif 377 378 379 #if @GNULIB_ATAN2F@ 380 # if @REPLACE_ATAN2F@ 381 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 382 # undef atan2f 383 # define atan2f rpl_atan2f 384 # endif 385 _GL_FUNCDECL_RPL (atan2f, float, (float y, float x)); 386 _GL_CXXALIAS_RPL (atan2f, float, (float y, float x)); 387 # else 388 # if !@HAVE_ATAN2F@ 389 # undef atan2f 390 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x)); 391 # endif 392 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); 393 # endif 394 _GL_CXXALIASWARN (atan2f); 395 #elif defined GNULIB_POSIXCHECK 396 # undef atan2f 397 # if HAVE_RAW_DECL_ATAN2F 398 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - " 399 "use gnulib module atan2f for portability"); 400 # endif 401 #endif 402 403 404 #if @GNULIB_CBRTF@ 405 # if @REPLACE_CBRTF@ 406 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 407 # undef cbrtf 408 # define cbrtf rpl_cbrtf 409 # endif 410 _GL_FUNCDECL_RPL (cbrtf, float, (float x)); 411 _GL_CXXALIAS_RPL (cbrtf, float, (float x)); 412 # else 413 # if !@HAVE_DECL_CBRTF@ 414 _GL_FUNCDECL_SYS (cbrtf, float, (float x)); 415 # endif 416 _GL_CXXALIAS_SYS (cbrtf, float, (float x)); 417 # endif 418 _GL_CXXALIASWARN (cbrtf); 419 #elif defined GNULIB_POSIXCHECK 420 # undef cbrtf 421 # if HAVE_RAW_DECL_CBRTF 422 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - " 423 "use gnulib module cbrtf for portability"); 424 # endif 425 #endif 426 427 #if @GNULIB_CBRT@ 428 # if !@HAVE_CBRT@ 429 _GL_FUNCDECL_SYS (cbrt, double, (double x)); 430 # endif 431 _GL_CXXALIAS_SYS (cbrt, double, (double x)); 432 # if __GLIBC__ >= 2 433 _GL_CXXALIASWARN1 (cbrt, double, (double x)); 434 # endif 435 #elif defined GNULIB_POSIXCHECK 436 # undef cbrt 437 # if HAVE_RAW_DECL_CBRT 438 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - " 439 "use gnulib module cbrt for portability"); 440 # endif 441 #endif 442 443 #if @GNULIB_CBRTL@ 444 # if @REPLACE_CBRTL@ 445 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 446 # undef cbrtl 447 # define cbrtl rpl_cbrtl 448 # endif 449 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x)); 450 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x)); 451 # else 452 # if !@HAVE_DECL_CBRTL@ 453 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x)); 454 # endif 455 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x)); 456 # endif 457 _GL_CXXALIASWARN (cbrtl); 458 #elif defined GNULIB_POSIXCHECK 459 # undef cbrtl 460 # if HAVE_RAW_DECL_CBRTL 461 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - " 462 "use gnulib module cbrtl for portability"); 463 # endif 464 #endif 465 466 467 #if @GNULIB_CEILF@ 468 # if @REPLACE_CEILF@ 469 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 470 # undef ceilf 471 # define ceilf rpl_ceilf 472 # endif 473 _GL_FUNCDECL_RPL (ceilf, float, (float x)); 474 _GL_CXXALIAS_RPL (ceilf, float, (float x)); 475 # else 476 # if !@HAVE_DECL_CEILF@ 477 # undef ceilf 478 _GL_FUNCDECL_SYS (ceilf, float, (float x)); 479 # endif 480 _GL_CXXALIAS_SYS (ceilf, float, (float x)); 481 # endif 482 _GL_CXXALIASWARN (ceilf); 483 #elif defined GNULIB_POSIXCHECK 484 # undef ceilf 485 # if HAVE_RAW_DECL_CEILF 486 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - " 487 "use gnulib module ceilf for portability"); 488 # endif 489 #endif 490 491 #if @GNULIB_CEIL@ 492 # if @REPLACE_CEIL@ 493 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 494 # undef ceil 495 # define ceil rpl_ceil 496 # endif 497 _GL_FUNCDECL_RPL (ceil, double, (double x)); 498 _GL_CXXALIAS_RPL (ceil, double, (double x)); 499 # else 500 _GL_CXXALIAS_SYS (ceil, double, (double x)); 501 # endif 502 # if __GLIBC__ >= 2 503 _GL_CXXALIASWARN1 (ceil, double, (double x)); 504 # endif 505 #endif 506 507 #if @GNULIB_CEILL@ 508 # if @REPLACE_CEILL@ 509 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 510 # undef ceill 511 # define ceill rpl_ceill 512 # endif 513 _GL_FUNCDECL_RPL (ceill, long double, (long double x)); 514 _GL_CXXALIAS_RPL (ceill, long double, (long double x)); 515 # else 516 # if !@HAVE_DECL_CEILL@ 517 # undef ceill 518 _GL_FUNCDECL_SYS (ceill, long double, (long double x)); 519 # endif 520 _GL_CXXALIAS_SYS (ceill, long double, (long double x)); 521 # endif 522 # if __GLIBC__ >= 2 523 _GL_CXXALIASWARN (ceill); 524 # endif 525 #elif defined GNULIB_POSIXCHECK 526 # undef ceill 527 # if HAVE_RAW_DECL_CEILL 528 _GL_WARN_ON_USE (ceill, "ceill is unportable - " 529 "use gnulib module ceill for portability"); 530 # endif 531 #endif 532 533 534 #if @GNULIB_COPYSIGNF@ 535 # if !@HAVE_DECL_COPYSIGNF@ 536 # undef copysignf 537 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y)); 538 # endif 539 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y)); 540 _GL_CXXALIASWARN (copysignf); 541 #elif defined GNULIB_POSIXCHECK 542 # undef copysignf 543 # if HAVE_RAW_DECL_COPYSIGNF 544 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - " 545 "use gnulib module copysignf for portability"); 546 # endif 547 #endif 548 549 #if @GNULIB_COPYSIGN@ 550 # if !@HAVE_COPYSIGN@ 551 _GL_FUNCDECL_SYS (copysign, double, (double x, double y)); 552 # endif 553 _GL_CXXALIAS_SYS (copysign, double, (double x, double y)); 554 # if __GLIBC__ >= 2 555 _GL_CXXALIASWARN1 (copysign, double, (double x, double y)); 556 # endif 557 #elif defined GNULIB_POSIXCHECK 558 # undef copysign 559 # if HAVE_RAW_DECL_COPYSIGN 560 _GL_WARN_ON_USE (copysign, "copysign is unportable - " 561 "use gnulib module copysign for portability"); 562 # endif 563 #endif 564 565 #if @GNULIB_COPYSIGNL@ 566 # if !@HAVE_COPYSIGNL@ 567 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y)); 568 # endif 569 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y)); 570 _GL_CXXALIASWARN (copysignl); 571 #elif defined GNULIB_POSIXCHECK 572 # undef copysignl 573 # if HAVE_RAW_DECL_COPYSIGNL 574 _GL_WARN_ON_USE (copysign, "copysignl is unportable - " 575 "use gnulib module copysignl for portability"); 576 # endif 577 #endif 578 579 580 #if @GNULIB_COSF@ 581 # if @REPLACE_COSF@ 582 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 583 # undef cosf 584 # define cosf rpl_cosf 585 # endif 586 _GL_FUNCDECL_RPL (cosf, float, (float x)); 587 _GL_CXXALIAS_RPL (cosf, float, (float x)); 588 # else 589 # if !@HAVE_COSF@ 590 # undef cosf 591 _GL_FUNCDECL_SYS (cosf, float, (float x)); 592 # endif 593 _GL_CXXALIAS_SYS (cosf, float, (float x)); 594 # endif 595 _GL_CXXALIASWARN (cosf); 596 #elif defined GNULIB_POSIXCHECK 597 # undef cosf 598 # if HAVE_RAW_DECL_COSF 599 _GL_WARN_ON_USE (cosf, "cosf is unportable - " 600 "use gnulib module cosf for portability"); 601 # endif 602 #endif 603 604 #if @GNULIB_COSL@ 605 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@ 606 # undef cosl 607 _GL_FUNCDECL_SYS (cosl, long double, (long double x)); 608 # endif 609 _GL_CXXALIAS_SYS (cosl, long double, (long double x)); 610 # if __GLIBC__ >= 2 611 _GL_CXXALIASWARN (cosl); 612 # endif 613 #elif defined GNULIB_POSIXCHECK 614 # undef cosl 615 # if HAVE_RAW_DECL_COSL 616 _GL_WARN_ON_USE (cosl, "cosl is unportable - " 617 "use gnulib module cosl for portability"); 618 # endif 619 #endif 620 621 622 #if @GNULIB_COSHF@ 623 # if @REPLACE_COSHF@ 624 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 625 # undef coshf 626 # define coshf rpl_coshf 627 # endif 628 _GL_FUNCDECL_RPL (coshf, float, (float x)); 629 _GL_CXXALIAS_RPL (coshf, float, (float x)); 630 # else 631 # if !@HAVE_COSHF@ 632 # undef coshf 633 _GL_FUNCDECL_SYS (coshf, float, (float x)); 634 # endif 635 _GL_CXXALIAS_SYS (coshf, float, (float x)); 636 # endif 637 _GL_CXXALIASWARN (coshf); 638 #elif defined GNULIB_POSIXCHECK 639 # undef coshf 640 # if HAVE_RAW_DECL_COSHF 641 _GL_WARN_ON_USE (coshf, "coshf is unportable - " 642 "use gnulib module coshf for portability"); 643 # endif 644 #endif 645 646 647 #if @GNULIB_EXPF@ 648 # if @REPLACE_EXPF@ 649 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 650 # undef expf 651 # define expf rpl_expf 652 # endif 653 _GL_FUNCDECL_RPL (expf, float, (float x)); 654 _GL_CXXALIAS_RPL (expf, float, (float x)); 655 # else 656 # if !@HAVE_EXPF@ 657 # undef expf 658 _GL_FUNCDECL_SYS (expf, float, (float x)); 659 # endif 660 _GL_CXXALIAS_SYS (expf, float, (float x)); 661 # endif 662 _GL_CXXALIASWARN (expf); 663 #elif defined GNULIB_POSIXCHECK 664 # undef expf 665 # if HAVE_RAW_DECL_EXPF 666 _GL_WARN_ON_USE (expf, "expf is unportable - " 667 "use gnulib module expf for portability"); 668 # endif 669 #endif 670 671 #if @GNULIB_EXPL@ 672 # if @REPLACE_EXPL@ 673 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 674 # undef expl 675 # define expl rpl_expl 676 # endif 677 _GL_FUNCDECL_RPL (expl, long double, (long double x)); 678 _GL_CXXALIAS_RPL (expl, long double, (long double x)); 679 # else 680 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@ 681 # undef expl 682 _GL_FUNCDECL_SYS (expl, long double, (long double x)); 683 # endif 684 _GL_CXXALIAS_SYS (expl, long double, (long double x)); 685 # endif 686 # if __GLIBC__ >= 2 687 _GL_CXXALIASWARN (expl); 688 # endif 689 #elif defined GNULIB_POSIXCHECK 690 # undef expl 691 # if HAVE_RAW_DECL_EXPL 692 _GL_WARN_ON_USE (expl, "expl is unportable - " 693 "use gnulib module expl for portability"); 694 # endif 695 #endif 696 697 698 #if @GNULIB_EXP2F@ 699 # if !@HAVE_DECL_EXP2F@ 700 _GL_FUNCDECL_SYS (exp2f, float, (float x)); 701 # endif 702 _GL_CXXALIAS_SYS (exp2f, float, (float x)); 703 _GL_CXXALIASWARN (exp2f); 704 #elif defined GNULIB_POSIXCHECK 705 # undef exp2f 706 # if HAVE_RAW_DECL_EXP2F 707 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - " 708 "use gnulib module exp2f for portability"); 709 # endif 710 #endif 711 712 #if @GNULIB_EXP2@ 713 # if @REPLACE_EXP2@ 714 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 715 # undef exp2 716 # define exp2 rpl_exp2 717 # endif 718 _GL_FUNCDECL_RPL (exp2, double, (double x)); 719 _GL_CXXALIAS_RPL (exp2, double, (double x)); 720 # else 721 # if !@HAVE_DECL_EXP2@ 722 _GL_FUNCDECL_SYS (exp2, double, (double x)); 723 # endif 724 _GL_CXXALIAS_SYS (exp2, double, (double x)); 725 # endif 726 # if __GLIBC__ >= 2 727 _GL_CXXALIASWARN1 (exp2, double, (double x)); 728 # endif 729 #elif defined GNULIB_POSIXCHECK 730 # undef exp2 731 # if HAVE_RAW_DECL_EXP2 732 _GL_WARN_ON_USE (exp2, "exp2 is unportable - " 733 "use gnulib module exp2 for portability"); 734 # endif 735 #endif 736 737 #if @GNULIB_EXP2L@ 738 # if @REPLACE_EXP2L@ 739 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 740 # undef exp2l 741 # define exp2l rpl_exp2l 742 # endif 743 _GL_FUNCDECL_RPL (exp2l, long double, (long double x)); 744 _GL_CXXALIAS_RPL (exp2l, long double, (long double x)); 745 # else 746 # if !@HAVE_DECL_EXP2L@ 747 # undef exp2l 748 _GL_FUNCDECL_SYS (exp2l, long double, (long double x)); 749 # endif 750 _GL_CXXALIAS_SYS (exp2l, long double, (long double x)); 751 # endif 752 _GL_CXXALIASWARN (exp2l); 753 #elif defined GNULIB_POSIXCHECK 754 # undef exp2l 755 # if HAVE_RAW_DECL_EXP2L 756 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - " 757 "use gnulib module exp2l for portability"); 758 # endif 759 #endif 760 761 762 #if @GNULIB_EXPM1F@ 763 # if @REPLACE_EXPM1F@ 764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 765 # undef expm1f 766 # define expm1f rpl_expm1f 767 # endif 768 _GL_FUNCDECL_RPL (expm1f, float, (float x)); 769 _GL_CXXALIAS_RPL (expm1f, float, (float x)); 770 # else 771 # if !@HAVE_EXPM1F@ 772 _GL_FUNCDECL_SYS (expm1f, float, (float x)); 773 # endif 774 _GL_CXXALIAS_SYS (expm1f, float, (float x)); 775 # endif 776 _GL_CXXALIASWARN (expm1f); 777 #elif defined GNULIB_POSIXCHECK 778 # undef expm1f 779 # if HAVE_RAW_DECL_EXPM1F 780 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - " 781 "use gnulib module expm1f for portability"); 782 # endif 783 #endif 784 785 #if @GNULIB_EXPM1@ 786 # if @REPLACE_EXPM1@ 787 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 788 # undef expm1 789 # define expm1 rpl_expm1 790 # endif 791 _GL_FUNCDECL_RPL (expm1, double, (double x)); 792 _GL_CXXALIAS_RPL (expm1, double, (double x)); 793 # else 794 # if !@HAVE_EXPM1@ 795 _GL_FUNCDECL_SYS (expm1, double, (double x)); 796 # endif 797 _GL_CXXALIAS_SYS (expm1, double, (double x)); 798 # endif 799 # if __GLIBC__ >= 2 800 _GL_CXXALIASWARN1 (expm1, double, (double x)); 801 # endif 802 #elif defined GNULIB_POSIXCHECK 803 # undef expm1 804 # if HAVE_RAW_DECL_EXPM1 805 _GL_WARN_ON_USE (expm1, "expm1 is unportable - " 806 "use gnulib module expm1 for portability"); 807 # endif 808 #endif 809 810 #if @GNULIB_EXPM1L@ 811 # if @REPLACE_EXPM1L@ 812 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 813 # undef expm1l 814 # define expm1l rpl_expm1l 815 # endif 816 _GL_FUNCDECL_RPL (expm1l, long double, (long double x)); 817 _GL_CXXALIAS_RPL (expm1l, long double, (long double x)); 818 # else 819 # if !@HAVE_DECL_EXPM1L@ 820 # undef expm1l 821 # if !(defined __cplusplus && defined _AIX) 822 _GL_FUNCDECL_SYS (expm1l, long double, (long double x)); 823 # endif 824 # endif 825 _GL_CXXALIAS_SYS (expm1l, long double, (long double x)); 826 # endif 827 _GL_CXXALIASWARN (expm1l); 828 #elif defined GNULIB_POSIXCHECK 829 # undef expm1l 830 # if HAVE_RAW_DECL_EXPM1L 831 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - " 832 "use gnulib module expm1l for portability"); 833 # endif 834 #endif 835 836 837 #if @GNULIB_FABSF@ 838 # if !@HAVE_FABSF@ 839 # undef fabsf 840 _GL_FUNCDECL_SYS (fabsf, float, (float x)); 841 # endif 842 _GL_CXXALIAS_SYS (fabsf, float, (float x)); 843 # if __GLIBC__ >= 2 844 _GL_CXXALIASWARN (fabsf); 845 # endif 846 #elif defined GNULIB_POSIXCHECK 847 # undef fabsf 848 # if HAVE_RAW_DECL_FABSF 849 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - " 850 "use gnulib module fabsf for portability"); 851 # endif 852 #endif 853 854 #if @GNULIB_FABSL@ 855 # if @REPLACE_FABSL@ 856 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 857 # undef fabsl 858 # define fabsl rpl_fabsl 859 # endif 860 _GL_FUNCDECL_RPL (fabsl, long double, (long double x)); 861 _GL_CXXALIAS_RPL (fabsl, long double, (long double x)); 862 # else 863 # if !@HAVE_FABSL@ 864 # undef fabsl 865 _GL_FUNCDECL_SYS (fabsl, long double, (long double x)); 866 # endif 867 _GL_CXXALIAS_SYS (fabsl, long double, (long double x)); 868 # endif 869 # if __GLIBC__ >= 2 870 _GL_CXXALIASWARN (fabsl); 871 # endif 872 #elif defined GNULIB_POSIXCHECK 873 # undef fabsl 874 # if HAVE_RAW_DECL_FABSL 875 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - " 876 "use gnulib module fabsl for portability"); 877 # endif 878 #endif 879 880 881 #if @GNULIB_FLOORF@ 882 # if @REPLACE_FLOORF@ 883 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 884 # undef floorf 885 # define floorf rpl_floorf 886 # endif 887 _GL_FUNCDECL_RPL (floorf, float, (float x)); 888 _GL_CXXALIAS_RPL (floorf, float, (float x)); 889 # else 890 # if !@HAVE_DECL_FLOORF@ 891 # undef floorf 892 _GL_FUNCDECL_SYS (floorf, float, (float x)); 893 # endif 894 _GL_CXXALIAS_SYS (floorf, float, (float x)); 895 # endif 896 _GL_CXXALIASWARN (floorf); 897 #elif defined GNULIB_POSIXCHECK 898 # undef floorf 899 # if HAVE_RAW_DECL_FLOORF 900 _GL_WARN_ON_USE (floorf, "floorf is unportable - " 901 "use gnulib module floorf for portability"); 902 # endif 903 #endif 904 905 #if @GNULIB_FLOOR@ 906 # if @REPLACE_FLOOR@ 907 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 908 # undef floor 909 # define floor rpl_floor 910 # endif 911 _GL_FUNCDECL_RPL (floor, double, (double x)); 912 _GL_CXXALIAS_RPL (floor, double, (double x)); 913 # else 914 _GL_CXXALIAS_SYS (floor, double, (double x)); 915 # endif 916 # if __GLIBC__ >= 2 917 _GL_CXXALIASWARN1 (floor, double, (double x)); 918 # endif 919 #endif 920 921 #if @GNULIB_FLOORL@ 922 # if @REPLACE_FLOORL@ 923 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 924 # undef floorl 925 # define floorl rpl_floorl 926 # endif 927 _GL_FUNCDECL_RPL (floorl, long double, (long double x)); 928 _GL_CXXALIAS_RPL (floorl, long double, (long double x)); 929 # else 930 # if !@HAVE_DECL_FLOORL@ 931 # undef floorl 932 _GL_FUNCDECL_SYS (floorl, long double, (long double x)); 933 # endif 934 _GL_CXXALIAS_SYS (floorl, long double, (long double x)); 935 # endif 936 # if __GLIBC__ >= 2 937 _GL_CXXALIASWARN (floorl); 938 # endif 939 #elif defined GNULIB_POSIXCHECK 940 # undef floorl 941 # if HAVE_RAW_DECL_FLOORL 942 _GL_WARN_ON_USE (floorl, "floorl is unportable - " 943 "use gnulib module floorl for portability"); 944 # endif 945 #endif 946 947 948 #if @GNULIB_FMAF@ 949 # if @REPLACE_FMAF@ 950 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 951 # undef fmaf 952 # define fmaf rpl_fmaf 953 # endif 954 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z)); 955 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z)); 956 # else 957 # if !@HAVE_FMAF@ 958 # undef fmaf 959 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z)); 960 # endif 961 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z)); 962 # endif 963 _GL_CXXALIASWARN (fmaf); 964 #elif defined GNULIB_POSIXCHECK 965 # undef fmaf 966 # if HAVE_RAW_DECL_FMAF 967 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - " 968 "use gnulib module fmaf for portability"); 969 # endif 970 #endif 971 972 #if @GNULIB_FMA@ 973 # if @REPLACE_FMA@ 974 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 975 # undef fma 976 # define fma rpl_fma 977 # endif 978 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z)); 979 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z)); 980 # else 981 # if !@HAVE_FMA@ 982 # undef fma 983 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z)); 984 # endif 985 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z)); 986 # endif 987 # if __GLIBC__ >= 2 988 _GL_CXXALIASWARN1 (fma, double, (double x, double y, double z)); 989 # endif 990 #elif defined GNULIB_POSIXCHECK 991 # undef fma 992 # if HAVE_RAW_DECL_FMA 993 _GL_WARN_ON_USE (fma, "fma is unportable - " 994 "use gnulib module fma for portability"); 995 # endif 996 #endif 997 998 #if @GNULIB_FMAL@ 999 # if @REPLACE_FMAL@ 1000 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1001 # undef fmal 1002 # define fmal rpl_fmal 1003 # endif 1004 _GL_FUNCDECL_RPL (fmal, long double, 1005 (long double x, long double y, long double z)); 1006 _GL_CXXALIAS_RPL (fmal, long double, 1007 (long double x, long double y, long double z)); 1008 # else 1009 # if !@HAVE_FMAL@ 1010 # undef fmal 1011 # if !(defined __cplusplus && defined _AIX) 1012 _GL_FUNCDECL_SYS (fmal, long double, 1013 (long double x, long double y, long double z)); 1014 # endif 1015 # endif 1016 _GL_CXXALIAS_SYS (fmal, long double, 1017 (long double x, long double y, long double z)); 1018 # endif 1019 _GL_CXXALIASWARN (fmal); 1020 #elif defined GNULIB_POSIXCHECK 1021 # undef fmal 1022 # if HAVE_RAW_DECL_FMAL 1023 _GL_WARN_ON_USE (fmal, "fmal is unportable - " 1024 "use gnulib module fmal for portability"); 1025 # endif 1026 #endif 1027 1028 1029 #if @GNULIB_FMODF@ 1030 # if @REPLACE_FMODF@ 1031 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1032 # undef fmodf 1033 # define fmodf rpl_fmodf 1034 # endif 1035 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y)); 1036 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y)); 1037 # else 1038 # if !@HAVE_FMODF@ 1039 # undef fmodf 1040 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y)); 1041 # endif 1042 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y)); 1043 # endif 1044 _GL_CXXALIASWARN (fmodf); 1045 #elif defined GNULIB_POSIXCHECK 1046 # undef fmodf 1047 # if HAVE_RAW_DECL_FMODF 1048 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - " 1049 "use gnulib module fmodf for portability"); 1050 # endif 1051 #endif 1052 1053 #if @GNULIB_FMOD@ 1054 # if @REPLACE_FMOD@ 1055 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1056 # undef fmod 1057 # define fmod rpl_fmod 1058 # endif 1059 _GL_FUNCDECL_RPL (fmod, double, (double x, double y)); 1060 _GL_CXXALIAS_RPL (fmod, double, (double x, double y)); 1061 # else 1062 _GL_CXXALIAS_SYS (fmod, double, (double x, double y)); 1063 # endif 1064 # if __GLIBC__ >= 2 1065 _GL_CXXALIASWARN1 (fmod, double, (double x, double y)); 1066 # endif 1067 #elif defined GNULIB_POSIXCHECK 1068 # undef fmod 1069 # if HAVE_RAW_DECL_FMOD 1070 _GL_WARN_ON_USE (fmod, "fmod has portability problems - " 1071 "use gnulib module fmod for portability"); 1072 # endif 1073 #endif 1074 1075 #if @GNULIB_FMODL@ 1076 # if @REPLACE_FMODL@ 1077 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1078 # undef fmodl 1079 # define fmodl rpl_fmodl 1080 # endif 1081 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y)); 1082 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y)); 1083 # else 1084 # if !@HAVE_FMODL@ 1085 # undef fmodl 1086 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y)); 1087 # endif 1088 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y)); 1089 # endif 1090 # if __GLIBC__ >= 2 1091 _GL_CXXALIASWARN (fmodl); 1092 # endif 1093 #elif defined GNULIB_POSIXCHECK 1094 # undef fmodl 1095 # if HAVE_RAW_DECL_FMODL 1096 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - " 1097 "use gnulib module fmodl for portability"); 1098 # endif 1099 #endif 1100 1101 1102 /* Write x as 1103 x = mantissa * 2^exp 1104 where 1105 If x finite and nonzero: 0.5 <= |mantissa| < 1.0. 1106 If x is zero: mantissa = x, exp = 0. 1107 If x is infinite or NaN: mantissa = x, exp unspecified. 1108 Store exp in *EXPPTR and return mantissa. */ 1109 #if @GNULIB_FREXPF@ 1110 # if @REPLACE_FREXPF@ 1111 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1112 # undef frexpf 1113 # define frexpf rpl_frexpf 1114 # endif 1115 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); 1116 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr)); 1117 # else 1118 # if !@HAVE_FREXPF@ 1119 # undef frexpf 1120 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); 1121 # endif 1122 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr)); 1123 # endif 1124 # if __GLIBC__ >= 2 1125 _GL_CXXALIASWARN (frexpf); 1126 # endif 1127 #elif defined GNULIB_POSIXCHECK 1128 # undef frexpf 1129 # if HAVE_RAW_DECL_FREXPF 1130 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - " 1131 "use gnulib module frexpf for portability"); 1132 # endif 1133 #endif 1134 1135 /* Write x as 1136 x = mantissa * 2^exp 1137 where 1138 If x finite and nonzero: 0.5 <= |mantissa| < 1.0. 1139 If x is zero: mantissa = x, exp = 0. 1140 If x is infinite or NaN: mantissa = x, exp unspecified. 1141 Store exp in *EXPPTR and return mantissa. */ 1142 #if @GNULIB_FREXP@ 1143 # if @REPLACE_FREXP@ 1144 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1145 # undef frexp 1146 # define frexp rpl_frexp 1147 # endif 1148 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2))); 1149 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr)); 1150 # else 1151 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr)); 1152 # endif 1153 # if __GLIBC__ >= 2 1154 _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr)); 1155 # endif 1156 #elif defined GNULIB_POSIXCHECK 1157 # undef frexp 1158 /* Assume frexp is always declared. */ 1159 _GL_WARN_ON_USE (frexp, "frexp is unportable - " 1160 "use gnulib module frexp for portability"); 1161 #endif 1162 1163 /* Write x as 1164 x = mantissa * 2^exp 1165 where 1166 If x finite and nonzero: 0.5 <= |mantissa| < 1.0. 1167 If x is zero: mantissa = x, exp = 0. 1168 If x is infinite or NaN: mantissa = x, exp unspecified. 1169 Store exp in *EXPPTR and return mantissa. */ 1170 #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@ 1171 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1172 # undef frexpl 1173 # define frexpl rpl_frexpl 1174 # endif 1175 _GL_FUNCDECL_RPL (frexpl, long double, 1176 (long double x, int *expptr) _GL_ARG_NONNULL ((2))); 1177 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr)); 1178 #else 1179 # if !@HAVE_DECL_FREXPL@ 1180 _GL_FUNCDECL_SYS (frexpl, long double, 1181 (long double x, int *expptr) _GL_ARG_NONNULL ((2))); 1182 # endif 1183 # if @GNULIB_FREXPL@ 1184 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr)); 1185 # endif 1186 #endif 1187 #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@) 1188 # if __GLIBC__ >= 2 1189 _GL_CXXALIASWARN (frexpl); 1190 # endif 1191 #endif 1192 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK 1193 # undef frexpl 1194 # if HAVE_RAW_DECL_FREXPL 1195 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - " 1196 "use gnulib module frexpl for portability"); 1197 # endif 1198 #endif 1199 1200 1201 /* Return sqrt(x^2+y^2). */ 1202 #if @GNULIB_HYPOTF@ 1203 # if @REPLACE_HYPOTF@ 1204 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1205 # undef hypotf 1206 # define hypotf rpl_hypotf 1207 # endif 1208 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y)); 1209 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y)); 1210 # else 1211 # if !@HAVE_HYPOTF@ 1212 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y)); 1213 # endif 1214 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y)); 1215 # endif 1216 # if __GLIBC__ >= 2 1217 _GL_CXXALIASWARN (hypotf); 1218 # endif 1219 #elif defined GNULIB_POSIXCHECK 1220 # undef hypotf 1221 # if HAVE_RAW_DECL_HYPOTF 1222 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - " 1223 "use gnulib module hypotf for portability"); 1224 # endif 1225 #endif 1226 1227 /* Return sqrt(x^2+y^2). */ 1228 #if @GNULIB_HYPOT@ 1229 # if @REPLACE_HYPOT@ 1230 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1231 # undef hypot 1232 # define hypot rpl_hypot 1233 # endif 1234 _GL_FUNCDECL_RPL (hypot, double, (double x, double y)); 1235 _GL_CXXALIAS_RPL (hypot, double, (double x, double y)); 1236 # else 1237 _GL_CXXALIAS_SYS (hypot, double, (double x, double y)); 1238 # endif 1239 # if __GLIBC__ >= 2 1240 _GL_CXXALIASWARN1 (hypot, double, (double x, double y)); 1241 # endif 1242 #elif defined GNULIB_POSIXCHECK 1243 # undef hypot 1244 # if HAVE_RAW_DECL_HYPOT 1245 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - " 1246 "use gnulib module hypot for portability"); 1247 # endif 1248 #endif 1249 1250 /* Return sqrt(x^2+y^2). */ 1251 #if @GNULIB_HYPOTL@ 1252 # if @REPLACE_HYPOTL@ 1253 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1254 # undef hypotl 1255 # define hypotl rpl_hypotl 1256 # endif 1257 _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y)); 1258 _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y)); 1259 # else 1260 # if !@HAVE_HYPOTL@ 1261 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y)); 1262 # endif 1263 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y)); 1264 # endif 1265 # if __GLIBC__ >= 2 1266 _GL_CXXALIASWARN (hypotl); 1267 # endif 1268 #elif defined GNULIB_POSIXCHECK 1269 # undef hypotl 1270 # if HAVE_RAW_DECL_HYPOTL 1271 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - " 1272 "use gnulib module hypotl for portability"); 1273 # endif 1274 #endif 1275 1276 1277 #if @GNULIB_ILOGBF@ 1278 # if @REPLACE_ILOGBF@ 1279 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1280 # undef ilogbf 1281 # define ilogbf rpl_ilogbf 1282 # endif 1283 _GL_FUNCDECL_RPL (ilogbf, int, (float x)); 1284 _GL_CXXALIAS_RPL (ilogbf, int, (float x)); 1285 # else 1286 # if !@HAVE_ILOGBF@ 1287 _GL_FUNCDECL_SYS (ilogbf, int, (float x)); 1288 # endif 1289 _GL_CXXALIAS_SYS (ilogbf, int, (float x)); 1290 # endif 1291 _GL_CXXALIASWARN (ilogbf); 1292 #elif defined GNULIB_POSIXCHECK 1293 # undef ilogbf 1294 # if HAVE_RAW_DECL_ILOGBF 1295 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - " 1296 "use gnulib module ilogbf for portability"); 1297 # endif 1298 #endif 1299 1300 #if @GNULIB_ILOGB@ 1301 # if @REPLACE_ILOGB@ 1302 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1303 # undef ilogb 1304 # define ilogb rpl_ilogb 1305 # endif 1306 _GL_FUNCDECL_RPL (ilogb, int, (double x)); 1307 _GL_CXXALIAS_RPL (ilogb, int, (double x)); 1308 # else 1309 # if !@HAVE_ILOGB@ 1310 _GL_FUNCDECL_SYS (ilogb, int, (double x)); 1311 # endif 1312 _GL_CXXALIAS_SYS (ilogb, int, (double x)); 1313 # endif 1314 # if __GLIBC__ >= 2 1315 _GL_CXXALIASWARN1 (ilogb, int, (double x)); 1316 # endif 1317 #elif defined GNULIB_POSIXCHECK 1318 # undef ilogb 1319 # if HAVE_RAW_DECL_ILOGB 1320 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - " 1321 "use gnulib module ilogb for portability"); 1322 # endif 1323 #endif 1324 1325 #if @GNULIB_ILOGBL@ 1326 # if @REPLACE_ILOGBL@ 1327 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1328 # undef ilogbl 1329 # define ilogbl rpl_ilogbl 1330 # endif 1331 _GL_FUNCDECL_RPL (ilogbl, int, (long double x)); 1332 _GL_CXXALIAS_RPL (ilogbl, int, (long double x)); 1333 # else 1334 # if !@HAVE_ILOGBL@ 1335 # undef ilogbl 1336 _GL_FUNCDECL_SYS (ilogbl, int, (long double x)); 1337 # endif 1338 _GL_CXXALIAS_SYS (ilogbl, int, (long double x)); 1339 # endif 1340 _GL_CXXALIASWARN (ilogbl); 1341 #elif defined GNULIB_POSIXCHECK 1342 # undef ilogbl 1343 # if HAVE_RAW_DECL_ILOGBL 1344 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - " 1345 "use gnulib module ilogbl for portability"); 1346 # endif 1347 #endif 1348 1349 1350 #if @GNULIB_MDA_J0@ 1351 /* On native Windows, map 'j0' to '_j0', so that -loldnames is not 1352 required. In C++ with GNULIB_NAMESPACE, avoid differences between 1353 platforms by defining GNULIB_NAMESPACE::j0 always. */ 1354 # if defined _WIN32 && !defined __CYGWIN__ 1355 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1356 # undef j0 1357 # define j0 _j0 1358 # endif 1359 _GL_CXXALIAS_MDA (j0, double, (double x)); 1360 # else 1361 _GL_CXXALIAS_SYS (j0, double, (double x)); 1362 # endif 1363 _GL_CXXALIASWARN (j0); 1364 #endif 1365 1366 #if @GNULIB_MDA_J1@ 1367 /* On native Windows, map 'j1' to '_j1', so that -loldnames is not 1368 required. In C++ with GNULIB_NAMESPACE, avoid differences between 1369 platforms by defining GNULIB_NAMESPACE::j1 always. */ 1370 # if defined _WIN32 && !defined __CYGWIN__ 1371 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1372 # undef j1 1373 # define j1 _j1 1374 # endif 1375 _GL_CXXALIAS_MDA (j1, double, (double x)); 1376 # else 1377 _GL_CXXALIAS_SYS (j1, double, (double x)); 1378 # endif 1379 _GL_CXXALIASWARN (j1); 1380 #endif 1381 1382 #if @GNULIB_MDA_JN@ 1383 /* On native Windows, map 'jn' to '_jn', so that -loldnames is not 1384 required. In C++ with GNULIB_NAMESPACE, avoid differences between 1385 platforms by defining GNULIB_NAMESPACE::jn always. */ 1386 # if defined _WIN32 && !defined __CYGWIN__ 1387 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1388 # undef jn 1389 # define jn _jn 1390 # endif 1391 _GL_CXXALIAS_MDA (jn, double, (int n, double x)); 1392 # else 1393 _GL_CXXALIAS_SYS (jn, double, (int n, double x)); 1394 # endif 1395 _GL_CXXALIASWARN (jn); 1396 #endif 1397 1398 1399 /* Return x * 2^exp. */ 1400 #if @GNULIB_LDEXPF@ 1401 # if !@HAVE_LDEXPF@ 1402 # undef ldexpf 1403 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp)); 1404 # endif 1405 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp)); 1406 # if __GLIBC__ >= 2 1407 _GL_CXXALIASWARN (ldexpf); 1408 # endif 1409 #elif defined GNULIB_POSIXCHECK 1410 # undef ldexpf 1411 # if HAVE_RAW_DECL_LDEXPF 1412 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - " 1413 "use gnulib module ldexpf for portability"); 1414 # endif 1415 #endif 1416 1417 /* Return x * 2^exp. */ 1418 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@ 1419 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1420 # undef ldexpl 1421 # define ldexpl rpl_ldexpl 1422 # endif 1423 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp)); 1424 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp)); 1425 #else 1426 # if !@HAVE_DECL_LDEXPL@ 1427 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp)); 1428 # endif 1429 # if @GNULIB_LDEXPL@ 1430 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp)); 1431 # endif 1432 #endif 1433 #if @GNULIB_LDEXPL@ 1434 # if __GLIBC__ >= 2 1435 _GL_CXXALIASWARN (ldexpl); 1436 # endif 1437 #endif 1438 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK 1439 # undef ldexpl 1440 # if HAVE_RAW_DECL_LDEXPL 1441 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - " 1442 "use gnulib module ldexpl for portability"); 1443 # endif 1444 #endif 1445 1446 1447 #if @GNULIB_LOGF@ 1448 # if @REPLACE_LOGF@ 1449 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1450 # undef logf 1451 # define logf rpl_logf 1452 # endif 1453 _GL_FUNCDECL_RPL (logf, float, (float x)); 1454 _GL_CXXALIAS_RPL (logf, float, (float x)); 1455 # else 1456 # if !@HAVE_LOGF@ 1457 # undef logf 1458 _GL_FUNCDECL_SYS (logf, float, (float x)); 1459 # endif 1460 _GL_CXXALIAS_SYS (logf, float, (float x)); 1461 # endif 1462 _GL_CXXALIASWARN (logf); 1463 #elif defined GNULIB_POSIXCHECK 1464 # undef logf 1465 # if HAVE_RAW_DECL_LOGF 1466 _GL_WARN_ON_USE (logf, "logf is unportable - " 1467 "use gnulib module logf for portability"); 1468 # endif 1469 #endif 1470 1471 #if @GNULIB_LOG@ 1472 # if @REPLACE_LOG@ 1473 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1474 # undef log 1475 # define log rpl_log 1476 # endif 1477 _GL_FUNCDECL_RPL (log, double, (double x)); 1478 _GL_CXXALIAS_RPL (log, double, (double x)); 1479 # else 1480 _GL_CXXALIAS_SYS (log, double, (double x)); 1481 # endif 1482 # if __GLIBC__ >= 2 1483 _GL_CXXALIASWARN1 (log, double, (double x)); 1484 # endif 1485 #elif defined GNULIB_POSIXCHECK 1486 # undef log 1487 # if HAVE_RAW_DECL_LOG 1488 _GL_WARN_ON_USE (log, "log has portability problems - " 1489 "use gnulib module log for portability"); 1490 # endif 1491 #endif 1492 1493 #if @GNULIB_LOGL@ 1494 # if @REPLACE_LOGL@ 1495 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1496 # undef logl 1497 # define logl rpl_logl 1498 # endif 1499 _GL_FUNCDECL_RPL (logl, long double, (long double x)); 1500 _GL_CXXALIAS_RPL (logl, long double, (long double x)); 1501 # else 1502 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@ 1503 # undef logl 1504 _GL_FUNCDECL_SYS (logl, long double, (long double x)); 1505 # endif 1506 _GL_CXXALIAS_SYS (logl, long double, (long double x)); 1507 # endif 1508 # if __GLIBC__ >= 2 1509 _GL_CXXALIASWARN (logl); 1510 # endif 1511 #elif defined GNULIB_POSIXCHECK 1512 # undef logl 1513 # if HAVE_RAW_DECL_LOGL 1514 _GL_WARN_ON_USE (logl, "logl is unportable - " 1515 "use gnulib module logl for portability"); 1516 # endif 1517 #endif 1518 1519 1520 #if @GNULIB_LOG10F@ 1521 # if @REPLACE_LOG10F@ 1522 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1523 # undef log10f 1524 # define log10f rpl_log10f 1525 # endif 1526 _GL_FUNCDECL_RPL (log10f, float, (float x)); 1527 _GL_CXXALIAS_RPL (log10f, float, (float x)); 1528 # else 1529 # if !@HAVE_LOG10F@ 1530 # undef log10f 1531 _GL_FUNCDECL_SYS (log10f, float, (float x)); 1532 # endif 1533 _GL_CXXALIAS_SYS (log10f, float, (float x)); 1534 # endif 1535 _GL_CXXALIASWARN (log10f); 1536 #elif defined GNULIB_POSIXCHECK 1537 # undef log10f 1538 # if HAVE_RAW_DECL_LOG10F 1539 _GL_WARN_ON_USE (log10f, "log10f is unportable - " 1540 "use gnulib module log10f for portability"); 1541 # endif 1542 #endif 1543 1544 #if @GNULIB_LOG10@ 1545 # if @REPLACE_LOG10@ 1546 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1547 # undef log10 1548 # define log10 rpl_log10 1549 # endif 1550 _GL_FUNCDECL_RPL (log10, double, (double x)); 1551 _GL_CXXALIAS_RPL (log10, double, (double x)); 1552 # else 1553 _GL_CXXALIAS_SYS (log10, double, (double x)); 1554 # endif 1555 # if __GLIBC__ >= 2 1556 _GL_CXXALIASWARN1 (log10, double, (double x)); 1557 # endif 1558 #elif defined GNULIB_POSIXCHECK 1559 # undef log10 1560 # if HAVE_RAW_DECL_LOG10 1561 _GL_WARN_ON_USE (log10, "log10 has portability problems - " 1562 "use gnulib module log10 for portability"); 1563 # endif 1564 #endif 1565 1566 #if @GNULIB_LOG10L@ 1567 # if @REPLACE_LOG10L@ 1568 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1569 # undef log10l 1570 # define log10l rpl_log10l 1571 # endif 1572 _GL_FUNCDECL_RPL (log10l, long double, (long double x)); 1573 _GL_CXXALIAS_RPL (log10l, long double, (long double x)); 1574 # else 1575 # if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@ 1576 # undef log10l 1577 _GL_FUNCDECL_SYS (log10l, long double, (long double x)); 1578 # endif 1579 _GL_CXXALIAS_SYS (log10l, long double, (long double x)); 1580 # endif 1581 # if __GLIBC__ >= 2 1582 _GL_CXXALIASWARN (log10l); 1583 # endif 1584 #elif defined GNULIB_POSIXCHECK 1585 # undef log10l 1586 # if HAVE_RAW_DECL_LOG10L 1587 _GL_WARN_ON_USE (log10l, "log10l is unportable - " 1588 "use gnulib module log10l for portability"); 1589 # endif 1590 #endif 1591 1592 1593 #if @GNULIB_LOG1PF@ 1594 # if @REPLACE_LOG1PF@ 1595 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1596 # undef log1pf 1597 # define log1pf rpl_log1pf 1598 # endif 1599 _GL_FUNCDECL_RPL (log1pf, float, (float x)); 1600 _GL_CXXALIAS_RPL (log1pf, float, (float x)); 1601 # else 1602 # if !@HAVE_LOG1PF@ 1603 _GL_FUNCDECL_SYS (log1pf, float, (float x)); 1604 # endif 1605 _GL_CXXALIAS_SYS (log1pf, float, (float x)); 1606 # endif 1607 _GL_CXXALIASWARN (log1pf); 1608 #elif defined GNULIB_POSIXCHECK 1609 # undef log1pf 1610 # if HAVE_RAW_DECL_LOG1PF 1611 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - " 1612 "use gnulib module log1pf for portability"); 1613 # endif 1614 #endif 1615 1616 #if @GNULIB_LOG1P@ 1617 # if @REPLACE_LOG1P@ 1618 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1619 # undef log1p 1620 # define log1p rpl_log1p 1621 # endif 1622 _GL_FUNCDECL_RPL (log1p, double, (double x)); 1623 _GL_CXXALIAS_RPL (log1p, double, (double x)); 1624 # else 1625 # if !@HAVE_LOG1P@ 1626 _GL_FUNCDECL_SYS (log1p, double, (double x)); 1627 # endif 1628 _GL_CXXALIAS_SYS (log1p, double, (double x)); 1629 # endif 1630 # if __GLIBC__ >= 2 1631 _GL_CXXALIASWARN1 (log1p, double, (double x)); 1632 # endif 1633 #elif defined GNULIB_POSIXCHECK 1634 # undef log1p 1635 # if HAVE_RAW_DECL_LOG1P 1636 _GL_WARN_ON_USE (log1p, "log1p has portability problems - " 1637 "use gnulib module log1p for portability"); 1638 # endif 1639 #endif 1640 1641 #if @GNULIB_LOG1PL@ 1642 # if @REPLACE_LOG1PL@ 1643 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1644 # undef log1pl 1645 # define log1pl rpl_log1pl 1646 # endif 1647 _GL_FUNCDECL_RPL (log1pl, long double, (long double x)); 1648 _GL_CXXALIAS_RPL (log1pl, long double, (long double x)); 1649 # else 1650 # if !@HAVE_LOG1PL@ 1651 _GL_FUNCDECL_SYS (log1pl, long double, (long double x)); 1652 # endif 1653 _GL_CXXALIAS_SYS (log1pl, long double, (long double x)); 1654 # endif 1655 _GL_CXXALIASWARN (log1pl); 1656 #elif defined GNULIB_POSIXCHECK 1657 # undef log1pl 1658 # if HAVE_RAW_DECL_LOG1PL 1659 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - " 1660 "use gnulib module log1pl for portability"); 1661 # endif 1662 #endif 1663 1664 1665 #if @GNULIB_LOG2F@ 1666 # if @REPLACE_LOG2F@ 1667 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1668 # undef log2f 1669 # define log2f rpl_log2f 1670 # endif 1671 _GL_FUNCDECL_RPL (log2f, float, (float x)); 1672 _GL_CXXALIAS_RPL (log2f, float, (float x)); 1673 # else 1674 # if !@HAVE_DECL_LOG2F@ 1675 # undef log2f 1676 _GL_FUNCDECL_SYS (log2f, float, (float x)); 1677 # endif 1678 _GL_CXXALIAS_SYS (log2f, float, (float x)); 1679 # endif 1680 _GL_CXXALIASWARN (log2f); 1681 #elif defined GNULIB_POSIXCHECK 1682 # undef log2f 1683 # if HAVE_RAW_DECL_LOG2F 1684 _GL_WARN_ON_USE (log2f, "log2f is unportable - " 1685 "use gnulib module log2f for portability"); 1686 # endif 1687 #endif 1688 1689 #if @GNULIB_LOG2@ 1690 # if @REPLACE_LOG2@ 1691 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1692 # undef log2 1693 # define log2 rpl_log2 1694 # endif 1695 _GL_FUNCDECL_RPL (log2, double, (double x)); 1696 _GL_CXXALIAS_RPL (log2, double, (double x)); 1697 # else 1698 # if !@HAVE_DECL_LOG2@ 1699 # undef log2 1700 _GL_FUNCDECL_SYS (log2, double, (double x)); 1701 # endif 1702 _GL_CXXALIAS_SYS (log2, double, (double x)); 1703 # endif 1704 # if __GLIBC__ >= 2 1705 _GL_CXXALIASWARN1 (log2, double, (double x)); 1706 # endif 1707 #elif defined GNULIB_POSIXCHECK 1708 # undef log2 1709 # if HAVE_RAW_DECL_LOG2 1710 _GL_WARN_ON_USE (log2, "log2 is unportable - " 1711 "use gnulib module log2 for portability"); 1712 # endif 1713 #endif 1714 1715 #if @GNULIB_LOG2L@ 1716 # if @REPLACE_LOG2L@ 1717 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1718 # undef log2l 1719 # define log2l rpl_log2l 1720 # endif 1721 _GL_FUNCDECL_RPL (log2l, long double, (long double x)); 1722 _GL_CXXALIAS_RPL (log2l, long double, (long double x)); 1723 # else 1724 # if !@HAVE_DECL_LOG2L@ 1725 _GL_FUNCDECL_SYS (log2l, long double, (long double x)); 1726 # endif 1727 _GL_CXXALIAS_SYS (log2l, long double, (long double x)); 1728 # endif 1729 _GL_CXXALIASWARN (log2l); 1730 #elif defined GNULIB_POSIXCHECK 1731 # undef log2l 1732 # if HAVE_RAW_DECL_LOG2L 1733 _GL_WARN_ON_USE (log2l, "log2l is unportable - " 1734 "use gnulib module log2l for portability"); 1735 # endif 1736 #endif 1737 1738 1739 #if @GNULIB_LOGBF@ 1740 # if @REPLACE_LOGBF@ 1741 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1742 # undef logbf 1743 # define logbf rpl_logbf 1744 # endif 1745 _GL_FUNCDECL_RPL (logbf, float, (float x)); 1746 _GL_CXXALIAS_RPL (logbf, float, (float x)); 1747 # else 1748 # if !@HAVE_LOGBF@ 1749 _GL_FUNCDECL_SYS (logbf, float, (float x)); 1750 # endif 1751 _GL_CXXALIAS_SYS (logbf, float, (float x)); 1752 # endif 1753 _GL_CXXALIASWARN (logbf); 1754 #elif defined GNULIB_POSIXCHECK 1755 # undef logbf 1756 # if HAVE_RAW_DECL_LOGBF 1757 _GL_WARN_ON_USE (logbf, "logbf is unportable - " 1758 "use gnulib module logbf for portability"); 1759 # endif 1760 #endif 1761 1762 #if @GNULIB_LOGB@ 1763 # if @REPLACE_LOGB@ 1764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1765 # undef logb 1766 # define logb rpl_logb 1767 # endif 1768 _GL_FUNCDECL_RPL (logb, double, (double x)); 1769 _GL_CXXALIAS_RPL (logb, double, (double x)); 1770 # else 1771 # if !@HAVE_DECL_LOGB@ 1772 _GL_FUNCDECL_SYS (logb, double, (double x)); 1773 # endif 1774 _GL_CXXALIAS_SYS (logb, double, (double x)); 1775 # endif 1776 # if __GLIBC__ >= 2 1777 _GL_CXXALIASWARN1 (logb, double, (double x)); 1778 # endif 1779 #elif defined GNULIB_POSIXCHECK 1780 # undef logb 1781 # if HAVE_RAW_DECL_LOGB 1782 _GL_WARN_ON_USE (logb, "logb is unportable - " 1783 "use gnulib module logb for portability"); 1784 # endif 1785 #endif 1786 1787 #if @GNULIB_LOGBL@ 1788 # if @REPLACE_LOGBL@ 1789 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1790 # undef logbl 1791 # define logbl rpl_logbl 1792 # endif 1793 _GL_FUNCDECL_RPL (logbl, long double, (long double x)); 1794 _GL_CXXALIAS_RPL (logbl, long double, (long double x)); 1795 # else 1796 # if !@HAVE_LOGBL@ 1797 _GL_FUNCDECL_SYS (logbl, long double, (long double x)); 1798 # endif 1799 _GL_CXXALIAS_SYS (logbl, long double, (long double x)); 1800 # endif 1801 _GL_CXXALIASWARN (logbl); 1802 #elif defined GNULIB_POSIXCHECK 1803 # undef logbl 1804 # if HAVE_RAW_DECL_LOGBL 1805 _GL_WARN_ON_USE (logbl, "logbl is unportable - " 1806 "use gnulib module logbl for portability"); 1807 # endif 1808 #endif 1809 1810 1811 #if @GNULIB_MODFF@ 1812 # if @REPLACE_MODFF@ 1813 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1814 # undef modff 1815 # define modff rpl_modff 1816 # endif 1817 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2))); 1818 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr)); 1819 # else 1820 # if !@HAVE_MODFF@ 1821 # undef modff 1822 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2))); 1823 # endif 1824 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr)); 1825 # endif 1826 _GL_CXXALIASWARN (modff); 1827 #elif defined GNULIB_POSIXCHECK 1828 # undef modff 1829 # if HAVE_RAW_DECL_MODFF 1830 _GL_WARN_ON_USE (modff, "modff is unportable - " 1831 "use gnulib module modff for portability"); 1832 # endif 1833 #endif 1834 1835 #if @GNULIB_MODF@ 1836 # if @REPLACE_MODF@ 1837 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1838 # undef modf 1839 # define modf rpl_modf 1840 # endif 1841 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2))); 1842 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr)); 1843 # else 1844 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr)); 1845 # endif 1846 # if __GLIBC__ >= 2 1847 _GL_CXXALIASWARN1 (modf, double, (double x, double *iptr)); 1848 # endif 1849 #elif defined GNULIB_POSIXCHECK 1850 # undef modf 1851 # if HAVE_RAW_DECL_MODF 1852 _GL_WARN_ON_USE (modf, "modf has portability problems - " 1853 "use gnulib module modf for portability"); 1854 # endif 1855 #endif 1856 1857 #if @GNULIB_MODFL@ 1858 # if @REPLACE_MODFL@ 1859 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1860 # undef modfl 1861 # define modfl rpl_modfl 1862 # endif 1863 _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr) 1864 _GL_ARG_NONNULL ((2))); 1865 _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr)); 1866 # else 1867 # if !@HAVE_MODFL@ 1868 # undef modfl 1869 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr) 1870 _GL_ARG_NONNULL ((2))); 1871 # endif 1872 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr)); 1873 # endif 1874 # if __GLIBC__ >= 2 1875 _GL_CXXALIASWARN (modfl); 1876 # endif 1877 #elif defined GNULIB_POSIXCHECK 1878 # undef modfl 1879 # if HAVE_RAW_DECL_MODFL 1880 _GL_WARN_ON_USE (modfl, "modfl is unportable - " 1881 "use gnulib module modfl for portability"); 1882 # endif 1883 #endif 1884 1885 1886 #if @GNULIB_POWF@ 1887 # if !@HAVE_POWF@ 1888 # undef powf 1889 _GL_FUNCDECL_SYS (powf, float, (float x, float y)); 1890 # endif 1891 _GL_CXXALIAS_SYS (powf, float, (float x, float y)); 1892 _GL_CXXALIASWARN (powf); 1893 #elif defined GNULIB_POSIXCHECK 1894 # undef powf 1895 # if HAVE_RAW_DECL_POWF 1896 _GL_WARN_ON_USE (powf, "powf is unportable - " 1897 "use gnulib module powf for portability"); 1898 # endif 1899 #endif 1900 1901 1902 #if @GNULIB_REMAINDERF@ 1903 # if @REPLACE_REMAINDERF@ 1904 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1905 # undef remainderf 1906 # define remainderf rpl_remainderf 1907 # endif 1908 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y)); 1909 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y)); 1910 # else 1911 # if !@HAVE_REMAINDERF@ 1912 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y)); 1913 # endif 1914 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y)); 1915 # endif 1916 _GL_CXXALIASWARN (remainderf); 1917 #elif defined GNULIB_POSIXCHECK 1918 # undef remainderf 1919 # if HAVE_RAW_DECL_REMAINDERF 1920 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - " 1921 "use gnulib module remainderf for portability"); 1922 # endif 1923 #endif 1924 1925 #if @GNULIB_REMAINDER@ 1926 # if @REPLACE_REMAINDER@ 1927 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1928 # undef remainder 1929 # define remainder rpl_remainder 1930 # endif 1931 _GL_FUNCDECL_RPL (remainder, double, (double x, double y)); 1932 _GL_CXXALIAS_RPL (remainder, double, (double x, double y)); 1933 # else 1934 # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@ 1935 _GL_FUNCDECL_SYS (remainder, double, (double x, double y)); 1936 # endif 1937 _GL_CXXALIAS_SYS (remainder, double, (double x, double y)); 1938 # endif 1939 # if __GLIBC__ >= 2 1940 _GL_CXXALIASWARN1 (remainder, double, (double x, double y)); 1941 # endif 1942 #elif defined GNULIB_POSIXCHECK 1943 # undef remainder 1944 # if HAVE_RAW_DECL_REMAINDER 1945 _GL_WARN_ON_USE (remainder, "remainder is unportable - " 1946 "use gnulib module remainder for portability"); 1947 # endif 1948 #endif 1949 1950 #if @GNULIB_REMAINDERL@ 1951 # if @REPLACE_REMAINDERL@ 1952 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1953 # undef remainderl 1954 # define remainderl rpl_remainderl 1955 # endif 1956 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y)); 1957 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y)); 1958 # else 1959 # if !@HAVE_DECL_REMAINDERL@ 1960 # undef remainderl 1961 # if !(defined __cplusplus && defined _AIX) 1962 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y)); 1963 # endif 1964 # endif 1965 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y)); 1966 # endif 1967 _GL_CXXALIASWARN (remainderl); 1968 #elif defined GNULIB_POSIXCHECK 1969 # undef remainderl 1970 # if HAVE_RAW_DECL_REMAINDERL 1971 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - " 1972 "use gnulib module remainderl for portability"); 1973 # endif 1974 #endif 1975 1976 1977 #if @GNULIB_RINTF@ 1978 # if !@HAVE_DECL_RINTF@ 1979 _GL_FUNCDECL_SYS (rintf, float, (float x)); 1980 # endif 1981 _GL_CXXALIAS_SYS (rintf, float, (float x)); 1982 _GL_CXXALIASWARN (rintf); 1983 #elif defined GNULIB_POSIXCHECK 1984 # undef rintf 1985 # if HAVE_RAW_DECL_RINTF 1986 _GL_WARN_ON_USE (rintf, "rintf is unportable - " 1987 "use gnulib module rintf for portability"); 1988 # endif 1989 #endif 1990 1991 #if @GNULIB_RINT@ 1992 # if !@HAVE_RINT@ 1993 _GL_FUNCDECL_SYS (rint, double, (double x)); 1994 # endif 1995 _GL_CXXALIAS_SYS (rint, double, (double x)); 1996 # if __GLIBC__ >= 2 1997 _GL_CXXALIASWARN1 (rint, double, (double x)); 1998 # endif 1999 #elif defined GNULIB_POSIXCHECK 2000 # undef rint 2001 # if HAVE_RAW_DECL_RINT 2002 _GL_WARN_ON_USE (rint, "rint is unportable - " 2003 "use gnulib module rint for portability"); 2004 # endif 2005 #endif 2006 2007 #if @GNULIB_RINTL@ 2008 # if @REPLACE_RINTL@ 2009 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2010 # undef rintl 2011 # define rintl rpl_rintl 2012 # endif 2013 _GL_FUNCDECL_RPL (rintl, long double, (long double x)); 2014 _GL_CXXALIAS_RPL (rintl, long double, (long double x)); 2015 # else 2016 # if !@HAVE_RINTL@ 2017 _GL_FUNCDECL_SYS (rintl, long double, (long double x)); 2018 # endif 2019 _GL_CXXALIAS_SYS (rintl, long double, (long double x)); 2020 # endif 2021 _GL_CXXALIASWARN (rintl); 2022 #elif defined GNULIB_POSIXCHECK 2023 # undef rintl 2024 # if HAVE_RAW_DECL_RINTL 2025 _GL_WARN_ON_USE (rintl, "rintl is unportable - " 2026 "use gnulib module rintl for portability"); 2027 # endif 2028 #endif 2029 2030 2031 #if @GNULIB_ROUNDF@ 2032 # if @REPLACE_ROUNDF@ 2033 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2034 # undef roundf 2035 # define roundf rpl_roundf 2036 # endif 2037 _GL_FUNCDECL_RPL (roundf, float, (float x)); 2038 _GL_CXXALIAS_RPL (roundf, float, (float x)); 2039 # else 2040 # if !@HAVE_DECL_ROUNDF@ 2041 _GL_FUNCDECL_SYS (roundf, float, (float x)); 2042 # endif 2043 _GL_CXXALIAS_SYS (roundf, float, (float x)); 2044 # endif 2045 _GL_CXXALIASWARN (roundf); 2046 #elif defined GNULIB_POSIXCHECK 2047 # undef roundf 2048 # if HAVE_RAW_DECL_ROUNDF 2049 _GL_WARN_ON_USE (roundf, "roundf is unportable - " 2050 "use gnulib module roundf for portability"); 2051 # endif 2052 #endif 2053 2054 #if @GNULIB_ROUND@ 2055 # if @REPLACE_ROUND@ 2056 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2057 # undef round 2058 # define round rpl_round 2059 # endif 2060 _GL_FUNCDECL_RPL (round, double, (double x)); 2061 _GL_CXXALIAS_RPL (round, double, (double x)); 2062 # else 2063 # if !@HAVE_DECL_ROUND@ 2064 _GL_FUNCDECL_SYS (round, double, (double x)); 2065 # endif 2066 _GL_CXXALIAS_SYS (round, double, (double x)); 2067 # endif 2068 # if __GLIBC__ >= 2 2069 _GL_CXXALIASWARN1 (round, double, (double x)); 2070 # endif 2071 #elif defined GNULIB_POSIXCHECK 2072 # undef round 2073 # if HAVE_RAW_DECL_ROUND 2074 _GL_WARN_ON_USE (round, "round is unportable - " 2075 "use gnulib module round for portability"); 2076 # endif 2077 #endif 2078 2079 #if @GNULIB_ROUNDL@ 2080 # if @REPLACE_ROUNDL@ 2081 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2082 # undef roundl 2083 # define roundl rpl_roundl 2084 # endif 2085 _GL_FUNCDECL_RPL (roundl, long double, (long double x)); 2086 _GL_CXXALIAS_RPL (roundl, long double, (long double x)); 2087 # else 2088 # if !@HAVE_DECL_ROUNDL@ 2089 # undef roundl 2090 # if !(defined __cplusplus && defined _AIX) 2091 _GL_FUNCDECL_SYS (roundl, long double, (long double x)); 2092 # endif 2093 # endif 2094 _GL_CXXALIAS_SYS (roundl, long double, (long double x)); 2095 # endif 2096 _GL_CXXALIASWARN (roundl); 2097 #elif defined GNULIB_POSIXCHECK 2098 # undef roundl 2099 # if HAVE_RAW_DECL_ROUNDL 2100 _GL_WARN_ON_USE (roundl, "roundl is unportable - " 2101 "use gnulib module roundl for portability"); 2102 # endif 2103 #endif 2104 2105 2106 #if @GNULIB_SINF@ 2107 # if @REPLACE_SINF@ 2108 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2109 # undef sinf 2110 # define sinf rpl_sinf 2111 # endif 2112 _GL_FUNCDECL_RPL (sinf, float, (float x)); 2113 _GL_CXXALIAS_RPL (sinf, float, (float x)); 2114 # else 2115 # if !@HAVE_SINF@ 2116 # undef sinf 2117 _GL_FUNCDECL_SYS (sinf, float, (float x)); 2118 # endif 2119 _GL_CXXALIAS_SYS (sinf, float, (float x)); 2120 # endif 2121 _GL_CXXALIASWARN (sinf); 2122 #elif defined GNULIB_POSIXCHECK 2123 # undef sinf 2124 # if HAVE_RAW_DECL_SINF 2125 _GL_WARN_ON_USE (sinf, "sinf is unportable - " 2126 "use gnulib module sinf for portability"); 2127 # endif 2128 #endif 2129 2130 #if @GNULIB_SINL@ 2131 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@ 2132 # undef sinl 2133 _GL_FUNCDECL_SYS (sinl, long double, (long double x)); 2134 # endif 2135 _GL_CXXALIAS_SYS (sinl, long double, (long double x)); 2136 # if __GLIBC__ >= 2 2137 _GL_CXXALIASWARN (sinl); 2138 # endif 2139 #elif defined GNULIB_POSIXCHECK 2140 # undef sinl 2141 # if HAVE_RAW_DECL_SINL 2142 _GL_WARN_ON_USE (sinl, "sinl is unportable - " 2143 "use gnulib module sinl for portability"); 2144 # endif 2145 #endif 2146 2147 2148 #if @GNULIB_SINHF@ 2149 # if @REPLACE_SINHF@ 2150 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2151 # undef sinhf 2152 # define sinhf rpl_sinhf 2153 # endif 2154 _GL_FUNCDECL_RPL (sinhf, float, (float x)); 2155 _GL_CXXALIAS_RPL (sinhf, float, (float x)); 2156 # else 2157 # if !@HAVE_SINHF@ 2158 # undef sinhf 2159 _GL_FUNCDECL_SYS (sinhf, float, (float x)); 2160 # endif 2161 _GL_CXXALIAS_SYS (sinhf, float, (float x)); 2162 # endif 2163 _GL_CXXALIASWARN (sinhf); 2164 #elif defined GNULIB_POSIXCHECK 2165 # undef sinhf 2166 # if HAVE_RAW_DECL_SINHF 2167 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - " 2168 "use gnulib module sinhf for portability"); 2169 # endif 2170 #endif 2171 2172 2173 #if @GNULIB_SQRTF@ 2174 # if @REPLACE_SQRTF@ 2175 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2176 # undef sqrtf 2177 # define sqrtf rpl_sqrtf 2178 # endif 2179 _GL_FUNCDECL_RPL (sqrtf, float, (float x)); 2180 _GL_CXXALIAS_RPL (sqrtf, float, (float x)); 2181 # else 2182 # if !@HAVE_SQRTF@ 2183 # undef sqrtf 2184 _GL_FUNCDECL_SYS (sqrtf, float, (float x)); 2185 # endif 2186 _GL_CXXALIAS_SYS (sqrtf, float, (float x)); 2187 # endif 2188 _GL_CXXALIASWARN (sqrtf); 2189 #elif defined GNULIB_POSIXCHECK 2190 # undef sqrtf 2191 # if HAVE_RAW_DECL_SQRTF 2192 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - " 2193 "use gnulib module sqrtf for portability"); 2194 # endif 2195 #endif 2196 2197 #if @GNULIB_SQRTL@ 2198 # if @REPLACE_SQRTL@ 2199 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2200 # undef sqrtl 2201 # define sqrtl rpl_sqrtl 2202 # endif 2203 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x)); 2204 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x)); 2205 # else 2206 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@ 2207 # undef sqrtl 2208 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x)); 2209 # endif 2210 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x)); 2211 # endif 2212 # if __GLIBC__ >= 2 2213 _GL_CXXALIASWARN (sqrtl); 2214 # endif 2215 #elif defined GNULIB_POSIXCHECK 2216 # undef sqrtl 2217 # if HAVE_RAW_DECL_SQRTL 2218 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - " 2219 "use gnulib module sqrtl for portability"); 2220 # endif 2221 #endif 2222 2223 2224 #if @GNULIB_TANF@ 2225 # if @REPLACE_TANF@ 2226 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2227 # undef tanf 2228 # define tanf rpl_tanf 2229 # endif 2230 _GL_FUNCDECL_RPL (tanf, float, (float x)); 2231 _GL_CXXALIAS_RPL (tanf, float, (float x)); 2232 # else 2233 # if !@HAVE_TANF@ 2234 # undef tanf 2235 _GL_FUNCDECL_SYS (tanf, float, (float x)); 2236 # endif 2237 _GL_CXXALIAS_SYS (tanf, float, (float x)); 2238 # endif 2239 _GL_CXXALIASWARN (tanf); 2240 #elif defined GNULIB_POSIXCHECK 2241 # undef tanf 2242 # if HAVE_RAW_DECL_TANF 2243 _GL_WARN_ON_USE (tanf, "tanf is unportable - " 2244 "use gnulib module tanf for portability"); 2245 # endif 2246 #endif 2247 2248 #if @GNULIB_TANL@ 2249 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@ 2250 # undef tanl 2251 _GL_FUNCDECL_SYS (tanl, long double, (long double x)); 2252 # endif 2253 _GL_CXXALIAS_SYS (tanl, long double, (long double x)); 2254 # if __GLIBC__ >= 2 2255 _GL_CXXALIASWARN (tanl); 2256 # endif 2257 #elif defined GNULIB_POSIXCHECK 2258 # undef tanl 2259 # if HAVE_RAW_DECL_TANL 2260 _GL_WARN_ON_USE (tanl, "tanl is unportable - " 2261 "use gnulib module tanl for portability"); 2262 # endif 2263 #endif 2264 2265 2266 #if @GNULIB_TANHF@ 2267 # if @REPLACE_TANHF@ 2268 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2269 # undef tanhf 2270 # define tanhf rpl_tanhf 2271 # endif 2272 _GL_FUNCDECL_RPL (tanhf, float, (float x)); 2273 _GL_CXXALIAS_RPL (tanhf, float, (float x)); 2274 # else 2275 # if !@HAVE_TANHF@ 2276 # undef tanhf 2277 _GL_FUNCDECL_SYS (tanhf, float, (float x)); 2278 # endif 2279 _GL_CXXALIAS_SYS (tanhf, float, (float x)); 2280 # endif 2281 _GL_CXXALIASWARN (tanhf); 2282 #elif defined GNULIB_POSIXCHECK 2283 # undef tanhf 2284 # if HAVE_RAW_DECL_TANHF 2285 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - " 2286 "use gnulib module tanhf for portability"); 2287 # endif 2288 #endif 2289 2290 2291 #if @GNULIB_TRUNCF@ 2292 # if @REPLACE_TRUNCF@ 2293 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2294 # undef truncf 2295 # define truncf rpl_truncf 2296 # endif 2297 _GL_FUNCDECL_RPL (truncf, float, (float x)); 2298 _GL_CXXALIAS_RPL (truncf, float, (float x)); 2299 # else 2300 # if !@HAVE_DECL_TRUNCF@ 2301 _GL_FUNCDECL_SYS (truncf, float, (float x)); 2302 # endif 2303 _GL_CXXALIAS_SYS (truncf, float, (float x)); 2304 # endif 2305 _GL_CXXALIASWARN (truncf); 2306 #elif defined GNULIB_POSIXCHECK 2307 # undef truncf 2308 # if HAVE_RAW_DECL_TRUNCF 2309 _GL_WARN_ON_USE (truncf, "truncf is unportable - " 2310 "use gnulib module truncf for portability"); 2311 # endif 2312 #endif 2313 2314 #if @GNULIB_TRUNC@ 2315 # if @REPLACE_TRUNC@ 2316 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2317 # undef trunc 2318 # define trunc rpl_trunc 2319 # endif 2320 _GL_FUNCDECL_RPL (trunc, double, (double x)); 2321 _GL_CXXALIAS_RPL (trunc, double, (double x)); 2322 # else 2323 # if !@HAVE_DECL_TRUNC@ 2324 _GL_FUNCDECL_SYS (trunc, double, (double x)); 2325 # endif 2326 _GL_CXXALIAS_SYS (trunc, double, (double x)); 2327 # endif 2328 # if __GLIBC__ >= 2 2329 _GL_CXXALIASWARN1 (trunc, double, (double x)); 2330 # endif 2331 #elif defined GNULIB_POSIXCHECK 2332 # undef trunc 2333 # if HAVE_RAW_DECL_TRUNC 2334 _GL_WARN_ON_USE (trunc, "trunc is unportable - " 2335 "use gnulib module trunc for portability"); 2336 # endif 2337 #endif 2338 2339 #if @GNULIB_TRUNCL@ 2340 # if @REPLACE_TRUNCL@ 2341 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2342 # undef truncl 2343 # define truncl rpl_truncl 2344 # endif 2345 _GL_FUNCDECL_RPL (truncl, long double, (long double x)); 2346 _GL_CXXALIAS_RPL (truncl, long double, (long double x)); 2347 # else 2348 # if !@HAVE_DECL_TRUNCL@ 2349 _GL_FUNCDECL_SYS (truncl, long double, (long double x)); 2350 # endif 2351 _GL_CXXALIAS_SYS (truncl, long double, (long double x)); 2352 # endif 2353 _GL_CXXALIASWARN (truncl); 2354 #elif defined GNULIB_POSIXCHECK 2355 # undef truncl 2356 # if HAVE_RAW_DECL_TRUNCL 2357 _GL_WARN_ON_USE (truncl, "truncl is unportable - " 2358 "use gnulib module truncl for portability"); 2359 # endif 2360 #endif 2361 2362 2363 #if @GNULIB_MDA_Y0@ 2364 /* On native Windows, map 'y0' to '_y0', so that -loldnames is not 2365 required. In C++ with GNULIB_NAMESPACE, avoid differences between 2366 platforms by defining GNULIB_NAMESPACE::y0 always. */ 2367 # if defined _WIN32 && !defined __CYGWIN__ 2368 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2369 # undef y0 2370 # define y0 _y0 2371 # endif 2372 _GL_CXXALIAS_MDA (y0, double, (double x)); 2373 # else 2374 _GL_CXXALIAS_SYS (y0, double, (double x)); 2375 # endif 2376 _GL_CXXALIASWARN (y0); 2377 #endif 2378 2379 #if @GNULIB_MDA_Y1@ 2380 /* On native Windows, map 'y1' to '_y1', so that -loldnames is not 2381 required. In C++ with GNULIB_NAMESPACE, avoid differences between 2382 platforms by defining GNULIB_NAMESPACE::y1 always. */ 2383 # if defined _WIN32 && !defined __CYGWIN__ 2384 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2385 # undef y1 2386 # define y1 _y1 2387 # endif 2388 _GL_CXXALIAS_MDA (y1, double, (double x)); 2389 # else 2390 _GL_CXXALIAS_SYS (y1, double, (double x)); 2391 # endif 2392 _GL_CXXALIASWARN (y1); 2393 #endif 2394 2395 #if @GNULIB_MDA_YN@ 2396 /* On native Windows, map 'yn' to '_yn', so that -loldnames is not 2397 required. In C++ with GNULIB_NAMESPACE, avoid differences between 2398 platforms by defining GNULIB_NAMESPACE::yn always. */ 2399 # if defined _WIN32 && !defined __CYGWIN__ 2400 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2401 # undef yn 2402 # define yn _yn 2403 # endif 2404 _GL_CXXALIAS_MDA (yn, double, (int n, double x)); 2405 # else 2406 _GL_CXXALIAS_SYS (yn, double, (int n, double x)); 2407 # endif 2408 _GL_CXXALIASWARN (yn); 2409 #endif 2410 2411 2412 /* Definitions of function-like macros come here, after the function 2413 declarations. */ 2414 2415 2416 #if @GNULIB_ISFINITE@ 2417 # if @REPLACE_ISFINITE@ 2418 _GL_EXTERN_C int gl_isfinitef (float x); 2419 _GL_EXTERN_C int gl_isfinited (double x); 2420 _GL_EXTERN_C int gl_isfinitel (long double x); 2421 # undef isfinite 2422 # define isfinite(x) \ 2423 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \ 2424 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \ 2425 gl_isfinitef (x)) 2426 # endif 2427 # ifdef __cplusplus 2428 # if defined isfinite || defined GNULIB_NAMESPACE 2429 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite) 2430 # undef isfinite 2431 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__))) 2432 /* This platform's <cmath> possibly defines isfinite through a set of inline 2433 functions. */ 2434 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool) 2435 # define isfinite rpl_isfinite 2436 # define GNULIB_NAMESPACE_LACKS_ISFINITE 1 2437 # else 2438 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool) 2439 # endif 2440 # endif 2441 # endif 2442 #elif defined GNULIB_POSIXCHECK 2443 # if defined isfinite 2444 _GL_WARN_REAL_FLOATING_DECL (isfinite); 2445 # undef isfinite 2446 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x) 2447 # endif 2448 #endif 2449 2450 2451 #if @GNULIB_ISINF@ 2452 # if @REPLACE_ISINF@ 2453 _GL_EXTERN_C int gl_isinff (float x); 2454 _GL_EXTERN_C int gl_isinfd (double x); 2455 _GL_EXTERN_C int gl_isinfl (long double x); 2456 # undef isinf 2457 # define isinf(x) \ 2458 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \ 2459 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \ 2460 gl_isinff (x)) 2461 # endif 2462 # ifdef __cplusplus 2463 # if defined isinf || defined GNULIB_NAMESPACE 2464 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf) 2465 # undef isinf 2466 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__))) 2467 /* This platform's <cmath> possibly defines isinf through a set of inline 2468 functions. */ 2469 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool) 2470 # define isinf rpl_isinf 2471 # define GNULIB_NAMESPACE_LACKS_ISINF 1 2472 # else 2473 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool) 2474 # endif 2475 # endif 2476 # endif 2477 #elif defined GNULIB_POSIXCHECK 2478 # if defined isinf 2479 _GL_WARN_REAL_FLOATING_DECL (isinf); 2480 # undef isinf 2481 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x) 2482 # endif 2483 #endif 2484 2485 2486 #if @GNULIB_ISNANF@ 2487 /* Test for NaN for 'float' numbers. */ 2488 # if @HAVE_ISNANF@ 2489 /* The original <math.h> included above provides a declaration of isnan macro 2490 or (older) isnanf function. */ 2491 # if (__GNUC__ >= 4) || (__clang_major__ >= 4) 2492 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. 2493 GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */ 2494 # undef isnanf 2495 # define isnanf(x) __builtin_isnan ((float)(x)) 2496 # elif defined isnan 2497 # undef isnanf 2498 # define isnanf(x) isnan ((float)(x)) 2499 # endif 2500 # else 2501 /* Test whether X is a NaN. */ 2502 # undef isnanf 2503 # define isnanf rpl_isnanf 2504 _GL_EXTERN_C int isnanf (float x); 2505 # endif 2506 #endif 2507 2508 #if @GNULIB_ISNAND@ 2509 /* Test for NaN for 'double' numbers. 2510 This function is a gnulib extension, unlike isnan() which applied only 2511 to 'double' numbers earlier but now is a type-generic macro. */ 2512 # if @HAVE_ISNAND@ 2513 /* The original <math.h> included above provides a declaration of isnan 2514 macro. */ 2515 # if (__GNUC__ >= 4) || (__clang_major__ >= 4) 2516 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */ 2517 # undef isnand 2518 # define isnand(x) __builtin_isnan ((double)(x)) 2519 # else 2520 # undef isnand 2521 # define isnand(x) isnan ((double)(x)) 2522 # endif 2523 # else 2524 /* Test whether X is a NaN. */ 2525 # undef isnand 2526 # define isnand rpl_isnand 2527 _GL_EXTERN_C int isnand (double x); 2528 # endif 2529 #endif 2530 2531 #if @GNULIB_ISNANL@ 2532 /* Test for NaN for 'long double' numbers. */ 2533 # if @HAVE_ISNANL@ 2534 /* The original <math.h> included above provides a declaration of isnan 2535 macro or (older) isnanl function. */ 2536 # if (__GNUC__ >= 4) || (__clang_major__ >= 4) 2537 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. 2538 GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't. */ 2539 # undef isnanl 2540 # define isnanl(x) __builtin_isnan ((long double)(x)) 2541 # elif defined isnan 2542 # undef isnanl 2543 # define isnanl(x) isnan ((long double)(x)) 2544 # endif 2545 # else 2546 /* Test whether X is a NaN. */ 2547 # undef isnanl 2548 # define isnanl rpl_isnanl 2549 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST; 2550 # endif 2551 #endif 2552 2553 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */ 2554 #if @GNULIB_ISNAN@ 2555 # if @REPLACE_ISNAN@ 2556 /* We can't just use the isnanf macro (e.g.) as exposed by 2557 isnanf.h (e.g.) here, because those may end up being macros 2558 that recursively expand back to isnan. So use the gnulib 2559 replacements for them directly. */ 2560 # if @HAVE_ISNANF@ && (__GNUC__ >= 4) || (__clang_major__ >= 4) 2561 # define gl_isnan_f(x) __builtin_isnan ((float)(x)) 2562 # else 2563 _GL_EXTERN_C int rpl_isnanf (float x); 2564 # define gl_isnan_f(x) rpl_isnanf (x) 2565 # endif 2566 # if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4) 2567 # define gl_isnan_d(x) __builtin_isnan ((double)(x)) 2568 # else 2569 _GL_EXTERN_C int rpl_isnand (double x); 2570 # define gl_isnan_d(x) rpl_isnand (x) 2571 # endif 2572 # if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4) 2573 # define gl_isnan_l(x) __builtin_isnan ((long double)(x)) 2574 # else 2575 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; 2576 # define gl_isnan_l(x) rpl_isnanl (x) 2577 # endif 2578 # undef isnan 2579 # define isnan(x) \ 2580 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ 2581 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ 2582 gl_isnan_f (x)) 2583 # elif (__GNUC__ >= 4) || (__clang_major__ >= 4) 2584 # undef isnan 2585 # define isnan(x) \ 2586 (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \ 2587 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ 2588 __builtin_isnan ((float)(x))) 2589 # endif 2590 # ifdef __cplusplus 2591 # if defined isnan || defined GNULIB_NAMESPACE 2592 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan) 2593 # undef isnan 2594 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ < 12) || (defined __FreeBSD__ && __clang_major__ < 7) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__))) 2595 /* This platform's <cmath> possibly defines isnan through a set of inline 2596 functions. */ 2597 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool) 2598 # define isnan rpl_isnan 2599 # define GNULIB_NAMESPACE_LACKS_ISNAN 1 2600 # else 2601 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool) 2602 # endif 2603 # endif 2604 # else 2605 /* Ensure isnan is a macro. */ 2606 # ifndef isnan 2607 # define isnan isnan 2608 # endif 2609 # endif 2610 #elif defined GNULIB_POSIXCHECK 2611 # if defined isnan 2612 _GL_WARN_REAL_FLOATING_DECL (isnan); 2613 # undef isnan 2614 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x) 2615 # endif 2616 #endif 2617 2618 2619 #if @GNULIB_SIGNBIT@ 2620 # if (@REPLACE_SIGNBIT_USING_BUILTINS@ \ 2621 && (!defined __cplusplus || __cplusplus < 201103)) 2622 # undef signbit 2623 /* GCC >= 4.0 and clang provide three built-ins for signbit. */ 2624 # define signbit(x) \ 2625 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ 2626 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ 2627 __builtin_signbitf (x)) 2628 # endif 2629 # if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit 2630 # undef signbit 2631 _GL_EXTERN_C int gl_signbitf (float arg); 2632 _GL_EXTERN_C int gl_signbitd (double arg); 2633 _GL_EXTERN_C int gl_signbitl (long double arg); 2634 # if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__ 2635 # define _GL_NUM_UINT_WORDS(type) \ 2636 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) 2637 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf 2638 # define gl_signbitf_OPTIMIZED_MACRO 2639 # define gl_signbitf(arg) \ 2640 ({ union { float _value; \ 2641 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \ 2642 } _m; \ 2643 _m._value = (arg); \ 2644 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ 2645 }) 2646 # endif 2647 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd 2648 # define gl_signbitd_OPTIMIZED_MACRO 2649 # define gl_signbitd(arg) \ 2650 ({ union { double _value; \ 2651 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \ 2652 } _m; \ 2653 _m._value = (arg); \ 2654 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ 2655 }) 2656 # endif 2657 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl 2658 # define gl_signbitl_OPTIMIZED_MACRO 2659 # define gl_signbitl(arg) \ 2660 ({ union { long double _value; \ 2661 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \ 2662 } _m; \ 2663 _m._value = (arg); \ 2664 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \ 2665 }) 2666 # endif 2667 # endif 2668 # define signbit(x) \ 2669 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ 2670 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ 2671 gl_signbitf (x)) 2672 # define GNULIB_defined_signbit 1 2673 # endif 2674 # ifdef __cplusplus 2675 # if defined signbit || defined GNULIB_NAMESPACE 2676 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit) 2677 # undef signbit 2678 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__))) 2679 /* This platform's <cmath> possibly defines signbit through a set of inline 2680 functions. */ 2681 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool) 2682 # define signbit rpl_signbit 2683 # define GNULIB_NAMESPACE_LACKS_SIGNBIT 1 2684 # else 2685 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool) 2686 # endif 2687 # endif 2688 # endif 2689 #elif defined GNULIB_POSIXCHECK 2690 # if defined signbit 2691 _GL_WARN_REAL_FLOATING_DECL (signbit); 2692 # undef signbit 2693 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x) 2694 # endif 2695 #endif 2696 2697 _GL_INLINE_HEADER_END 2698 2699 #endif /* _@GUARD_PREFIX@_MATH_H */ 2700 #endif /* _GL_INCLUDING_MATH_H */ 2701 #endif /* _@GUARD_PREFIX@_MATH_H */ 2702