summaryrefslogtreecommitdiffstats
path: root/gl/math.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/math.in.h')
-rw-r--r--gl/math.in.h404
1 files changed, 386 insertions, 18 deletions
diff --git a/gl/math.in.h b/gl/math.in.h
index f3d58af..96d0da4 100644
--- a/gl/math.in.h
+++ b/gl/math.in.h
@@ -1,6 +1,6 @@
1/* A GNU-like <math.h>. 1/* A GNU-like <math.h>.
2 2
3 Copyright (C) 2002-2003, 2007-2023 Free Software Foundation, Inc. 3 Copyright (C) 2002-2003, 2007-2024 Free Software Foundation, Inc.
4 4
5 This file is free software: you can redistribute it and/or modify 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 6 it under the terms of the GNU Lesser General Public License as
@@ -15,6 +15,11 @@
15 You should have received a copy of the GNU Lesser General Public License 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/>. */ 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 17
18/* On Android, in C++ mode, when /usr/include/c++/v1/math.h is being included
19 and /usr/include/math.h has not yet been included, skip this file, since it
20 would lead to many syntax errors. */
21#if !(defined __ANDROID__ && defined _LIBCPP_MATH_H && !defined INFINITY)
22
18#ifndef _@GUARD_PREFIX@_MATH_H 23#ifndef _@GUARD_PREFIX@_MATH_H
19 24
20#if __GNUC__ >= 3 25#if __GNUC__ >= 3
@@ -43,14 +48,17 @@
43#ifndef _@GUARD_PREFIX@_MATH_H 48#ifndef _@GUARD_PREFIX@_MATH_H
44#define _@GUARD_PREFIX@_MATH_H 49#define _@GUARD_PREFIX@_MATH_H
45 50
51/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
52 GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */
53#if !_GL_CONFIG_H_INCLUDED
54 #error "Please include config.h first."
55#endif
56
46/* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */ 57/* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */
47#if defined __VMS && ! defined NAN 58#if defined __VMS && ! defined NAN
48# include <fp.h> 59# include <fp.h>
49#endif 60#endif
50 61
51#ifndef _GL_INLINE_HEADER_BEGIN
52 #error "Please include config.h first."
53#endif
54_GL_INLINE_HEADER_BEGIN 62_GL_INLINE_HEADER_BEGIN
55#ifndef _GL_MATH_INLINE 63#ifndef _GL_MATH_INLINE
56# define _GL_MATH_INLINE _GL_INLINE 64# define _GL_MATH_INLINE _GL_INLINE
@@ -1427,6 +1435,29 @@ _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1427#endif 1435#endif
1428 1436
1429/* Return x * 2^exp. */ 1437/* Return x * 2^exp. */
1438#if @GNULIB_LDEXP@
1439# if @REPLACE_LDEXP@
1440# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1441# undef ldexp
1442# define ldexp rpl_ldexp
1443# endif
1444_GL_FUNCDECL_RPL (ldexp, double, (double x, int exp));
1445_GL_CXXALIAS_RPL (ldexp, double, (double x, int exp));
1446# else
1447/* Assume ldexp is always declared. */
1448_GL_CXXALIAS_SYS (ldexp, double, (double x, int exp));
1449# endif
1450# if __GLIBC__ >= 2
1451_GL_CXXALIASWARN1 (ldexp, double, (double x, int exp));
1452# endif
1453#elif defined GNULIB_POSIXCHECK
1454# undef ldexp
1455/* Assume ldexp is always declared. */
1456_GL_WARN_ON_USE (ldexp, "ldexp is unportable - "
1457 "use gnulib module ldexp for portability");
1458#endif
1459
1460/* Return x * 2^exp. */
1430#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@ 1461#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
1431# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1462# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1432# undef ldexpl 1463# undef ldexpl
@@ -1691,7 +1722,9 @@ _GL_FUNCDECL_SYS (log2f, float, (float x));
1691# endif 1722# endif
1692_GL_CXXALIAS_SYS (log2f, float, (float x)); 1723_GL_CXXALIAS_SYS (log2f, float, (float x));
1693# endif 1724# endif
1725# if __GLIBC__ >= 2
1694_GL_CXXALIASWARN (log2f); 1726_GL_CXXALIASWARN (log2f);
1727# endif
1695#elif defined GNULIB_POSIXCHECK 1728#elif defined GNULIB_POSIXCHECK
1696# undef log2f 1729# undef log2f
1697# if HAVE_RAW_DECL_LOG2F 1730# if HAVE_RAW_DECL_LOG2F
@@ -2512,16 +2545,22 @@ _GL_WARN_REAL_FLOATING_DECL (isinf);
2512#if @GNULIB_ISNANF@ 2545#if @GNULIB_ISNANF@
2513/* Test for NaN for 'float' numbers. */ 2546/* Test for NaN for 'float' numbers. */
2514# if @HAVE_ISNANF@ 2547# if @HAVE_ISNANF@
2548# if defined __sun || defined __sgi
2549/* Solaris and IRIX have isnanf() and declare it in <ieeefp.h>. We cannot
2550 define isnanf as a macro, because that would conflict with <ieeefp.h>. */
2551_GL_EXTERN_C int isnanf (float x);
2552# else
2515/* The original <math.h> included above provides a declaration of isnan macro 2553/* The original <math.h> included above provides a declaration of isnan macro
2516 or (older) isnanf function. */ 2554 or (older) isnanf function. */
2517# if (__GNUC__ >= 4) || (__clang_major__ >= 4) 2555# if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2518 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. 2556 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2519 GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */ 2557 GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */
2520# undef isnanf 2558# undef isnanf
2521# define isnanf(x) __builtin_isnan ((float)(x)) 2559# define isnanf(x) __builtin_isnan ((float)(x))
2522# elif defined isnan 2560# elif defined isnan
2523# undef isnanf 2561# undef isnanf
2524# define isnanf(x) isnan ((float)(x)) 2562# define isnanf(x) isnan ((float)(x))
2563# endif
2525# endif 2564# endif
2526# else 2565# else
2527/* Test whether X is a NaN. */ 2566/* Test whether X is a NaN. */
@@ -2536,15 +2575,21 @@ _GL_EXTERN_C int isnanf (float x);
2536 This function is a gnulib extension, unlike isnan() which applied only 2575 This function is a gnulib extension, unlike isnan() which applied only
2537 to 'double' numbers earlier but now is a type-generic macro. */ 2576 to 'double' numbers earlier but now is a type-generic macro. */
2538# if @HAVE_ISNAND@ 2577# if @HAVE_ISNAND@
2578# if defined __sun || defined __sgi
2579/* Solaris and IRIX have isnand() and declare it in <ieeefp.h>. We cannot
2580 define isnand as a macro, because that would conflict with <ieeefp.h>. */
2581_GL_EXTERN_C int isnand (double x);
2582# else
2539/* The original <math.h> included above provides a declaration of isnan 2583/* The original <math.h> included above provides a declaration of isnan
2540 macro. */ 2584 macro. */
2541# if (__GNUC__ >= 4) || (__clang_major__ >= 4) 2585# if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2542 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */ 2586 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */
2543# undef isnand 2587# undef isnand
2544# define isnand(x) __builtin_isnan ((double)(x)) 2588# define isnand(x) __builtin_isnan ((double)(x))
2545# else 2589# else
2546# undef isnand 2590# undef isnand
2547# define isnand(x) isnan ((double)(x)) 2591# define isnand(x) isnan ((double)(x))
2592# endif
2548# endif 2593# endif
2549# else 2594# else
2550/* Test whether X is a NaN. */ 2595/* Test whether X is a NaN. */
@@ -2617,12 +2662,17 @@ _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2617# if defined isnan || defined GNULIB_NAMESPACE 2662# if defined isnan || defined GNULIB_NAMESPACE
2618_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan) 2663_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2619# undef isnan 2664# undef isnan
2620# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ < 12) || (defined __FreeBSD__ && (__clang_major__ < 7 || __clang_major__ >= 11)) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__))) 2665# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ != 12) || (defined __FreeBSD__ && (__clang_major__ < 7 || __clang_major__ >= 11)) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2621 /* This platform's <cmath> possibly defines isnan through a set of inline 2666 /* This platform's <cmath> possibly defines isnan through a set of inline
2622 functions. */ 2667 functions. */
2623_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool) 2668_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool)
2624# define isnan rpl_isnan 2669# define isnan rpl_isnan
2625# define GNULIB_NAMESPACE_LACKS_ISNAN 1 2670# define GNULIB_NAMESPACE_LACKS_ISNAN 1
2671# elif __clang_major__ >= 14
2672 /* Neither of the two possible _GL_MATH_CXX_REAL_FLOATING_DECL_2 invocations
2673 works. Inline functions are already present in /usr/include/c++/v1/math.h,
2674 which comes from LLVM. */
2675# define GNULIB_NAMESPACE_LACKS_ISNAN 1
2626# else 2676# else
2627_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool) 2677_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
2628# endif 2678# endif
@@ -2657,12 +2707,13 @@ _GL_WARN_REAL_FLOATING_DECL (isnan);
2657_GL_EXTERN_C int gl_signbitf (float arg); 2707_GL_EXTERN_C int gl_signbitf (float arg);
2658_GL_EXTERN_C int gl_signbitd (double arg); 2708_GL_EXTERN_C int gl_signbitd (double arg);
2659_GL_EXTERN_C int gl_signbitl (long double arg); 2709_GL_EXTERN_C int gl_signbitl (long double arg);
2660# if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__ 2710# if __GNUC__ >= 2 || defined __clang__
2661# define _GL_NUM_UINT_WORDS(type) \ 2711# define _GL_NUM_UINT_WORDS(type) \
2662 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) 2712 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2663# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf 2713# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
2664# define gl_signbitf_OPTIMIZED_MACRO 2714# define gl_signbitf_OPTIMIZED_MACRO
2665# define gl_signbitf(arg) \ 2715# define gl_signbitf(arg) \
2716 __extension__ \
2666 ({ union { float _value; \ 2717 ({ union { float _value; \
2667 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \ 2718 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
2668 } _m; \ 2719 } _m; \
@@ -2673,6 +2724,7 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
2673# if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd 2724# if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2674# define gl_signbitd_OPTIMIZED_MACRO 2725# define gl_signbitd_OPTIMIZED_MACRO
2675# define gl_signbitd(arg) \ 2726# define gl_signbitd(arg) \
2727 __extension__ \
2676 ({ union { double _value; \ 2728 ({ union { double _value; \
2677 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \ 2729 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
2678 } _m; \ 2730 } _m; \
@@ -2683,6 +2735,7 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
2683# if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl 2735# if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2684# define gl_signbitl_OPTIMIZED_MACRO 2736# define gl_signbitl_OPTIMIZED_MACRO
2685# define gl_signbitl(arg) \ 2737# define gl_signbitl(arg) \
2738 __extension__ \
2686 ({ union { long double _value; \ 2739 ({ union { long double _value; \
2687 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \ 2740 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2688 } _m; \ 2741 } _m; \
@@ -2720,8 +2773,323 @@ _GL_WARN_REAL_FLOATING_DECL (signbit);
2720# endif 2773# endif
2721#endif 2774#endif
2722 2775
2776
2777#if @GNULIB_GETPAYLOADF@
2778# if @REPLACE_GETPAYLOADF@
2779# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2780# undef getpayloadf
2781# define getpayloadf rpl_getpayloadf
2782# endif
2783_GL_FUNCDECL_RPL (getpayloadf, float, (const float *));
2784_GL_CXXALIAS_RPL (getpayloadf, float, (const float *));
2785# else
2786# if !@HAVE_GETPAYLOADF@
2787_GL_FUNCDECL_SYS (getpayloadf, float, (const float *));
2788# endif
2789_GL_CXXALIAS_SYS (getpayloadf, float, (const float *));
2790# endif
2791_GL_CXXALIASWARN (getpayloadf);
2792#elif defined GNULIB_POSIXCHECK
2793# undef getpayloadf
2794# if HAVE_RAW_DECL_GETPAYLOADF
2795_GL_WARN_ON_USE (getpayloadf, "getpayloadf is unportable - "
2796 "use gnulib module getpayloadf for portability");
2797# endif
2798#endif
2799
2800#if @GNULIB_GETPAYLOAD@
2801# if @REPLACE_GETPAYLOAD@
2802# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2803# undef getpayload
2804# define getpayload rpl_getpayload
2805# endif
2806_GL_FUNCDECL_RPL (getpayload, double, (const double *));
2807_GL_CXXALIAS_RPL (getpayload, double, (const double *));
2808# else
2809# if !@HAVE_GETPAYLOAD@
2810_GL_FUNCDECL_SYS (getpayload, double, (const double *));
2811# endif
2812_GL_CXXALIAS_SYS (getpayload, double, (const double *));
2813# endif
2814_GL_CXXALIASWARN (getpayload);
2815#elif defined GNULIB_POSIXCHECK
2816# undef getpayload
2817# if HAVE_RAW_DECL_GETPAYLOAD
2818_GL_WARN_ON_USE (getpayload, "getpayload is unportable - "
2819 "use gnulib module getpayload for portability");
2820# endif
2821#endif
2822
2823#if @GNULIB_GETPAYLOADL@
2824# if @REPLACE_GETPAYLOADL@
2825# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2826# undef getpayloadl
2827# define getpayloadl rpl_getpayloadl
2828# endif
2829_GL_FUNCDECL_RPL (getpayloadl, long double, (const long double *));
2830_GL_CXXALIAS_RPL (getpayloadl, long double, (const long double *));
2831# else
2832# if !@HAVE_GETPAYLOADL@
2833_GL_FUNCDECL_SYS (getpayloadl, long double, (const long double *));
2834# endif
2835_GL_CXXALIAS_SYS (getpayloadl, long double, (const long double *));
2836# endif
2837_GL_CXXALIASWARN (getpayloadl);
2838#elif defined GNULIB_POSIXCHECK
2839# undef getpayloadl
2840# if HAVE_RAW_DECL_GETPAYLOADL
2841_GL_WARN_ON_USE (getpayloadl, "getpayloadl is unportable - "
2842 "use gnulib module getpayloadl for portability");
2843# endif
2844#endif
2845
2846
2847#if @GNULIB_SETPAYLOADF@
2848# if !@HAVE_SETPAYLOADF@
2849_GL_FUNCDECL_SYS (setpayloadf, int, (float *, float));
2850# endif
2851_GL_CXXALIAS_SYS (setpayloadf, int, (float *, float));
2852_GL_CXXALIASWARN (setpayloadf);
2853#elif defined GNULIB_POSIXCHECK
2854# undef setpayloadf
2855# if HAVE_RAW_DECL_SETPAYLOADF
2856_GL_WARN_ON_USE (setpayloadf, "setpayloadf is unportable - "
2857 "use gnulib module setpayloadf for portability");
2858# endif
2859#endif
2860
2861#if @GNULIB_SETPAYLOAD@
2862# if !@HAVE_SETPAYLOAD@
2863_GL_FUNCDECL_SYS (setpayload, int, (double *, double));
2864# endif
2865_GL_CXXALIAS_SYS (setpayload, int, (double *, double));
2866_GL_CXXALIASWARN (setpayload);
2867#elif defined GNULIB_POSIXCHECK
2868# undef setpayload
2869# if HAVE_RAW_DECL_SETPAYLOAD
2870_GL_WARN_ON_USE (setpayload, "setpayload is unportable - "
2871 "use gnulib module setpayload for portability");
2872# endif
2873#endif
2874
2875#if @GNULIB_SETPAYLOADL@
2876# if !@HAVE_SETPAYLOADL@
2877_GL_FUNCDECL_SYS (setpayloadl, int, (long double *, long double));
2878# endif
2879_GL_CXXALIAS_SYS (setpayloadl, int, (long double *, long double));
2880_GL_CXXALIASWARN (setpayloadl);
2881#elif defined GNULIB_POSIXCHECK
2882# undef setpayloadl
2883# if HAVE_RAW_DECL_SETPAYLOADL
2884_GL_WARN_ON_USE (setpayloadl, "setpayloadl is unportable - "
2885 "use gnulib module setpayloadl for portability");
2886# endif
2887#endif
2888
2889
2890#if @GNULIB_SETPAYLOADSIGF@
2891# if !@HAVE_SETPAYLOADSIGF@
2892_GL_FUNCDECL_SYS (setpayloadsigf, int, (float *, float));
2893# endif
2894_GL_CXXALIAS_SYS (setpayloadsigf, int, (float *, float));
2895_GL_CXXALIASWARN (setpayloadsigf);
2896#elif defined GNULIB_POSIXCHECK
2897# undef setpayloadsigf
2898# if HAVE_RAW_DECL_SETPAYLOADSIGF
2899_GL_WARN_ON_USE (setpayloadsigf, "setpayloadsigf is unportable - "
2900 "use gnulib module setpayloadsigf for portability");
2901# endif
2902#endif
2903
2904#if @GNULIB_SETPAYLOADSIG@
2905# if !@HAVE_SETPAYLOADSIG@
2906_GL_FUNCDECL_SYS (setpayloadsig, int, (double *, double));
2907# endif
2908_GL_CXXALIAS_SYS (setpayloadsig, int, (double *, double));
2909_GL_CXXALIASWARN (setpayloadsig);
2910#elif defined GNULIB_POSIXCHECK
2911# undef setpayloadsig
2912# if HAVE_RAW_DECL_SETPAYLOADSIG
2913_GL_WARN_ON_USE (setpayloadsig, "setpayloadsig is unportable - "
2914 "use gnulib module setpayloadsig for portability");
2915# endif
2916#endif
2917
2918#if @GNULIB_SETPAYLOADSIGL@
2919# if !@HAVE_SETPAYLOADSIGL@
2920_GL_FUNCDECL_SYS (setpayloadsigl, int, (long double *, long double));
2921# endif
2922_GL_CXXALIAS_SYS (setpayloadsigl, int, (long double *, long double));
2923_GL_CXXALIASWARN (setpayloadsigl);
2924#elif defined GNULIB_POSIXCHECK
2925# undef setpayloadsigl
2926# if HAVE_RAW_DECL_SETPAYLOADSIGL
2927_GL_WARN_ON_USE (setpayloadsigl, "setpayloadsigl is unportable - "
2928 "use gnulib module setpayloadsigl for portability");
2929# endif
2930#endif
2931
2932
2933#if @GNULIB_TOTALORDERF@
2934# if @REPLACE_TOTALORDERF@
2935# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2936# undef totalorderf
2937# define totalorderf rpl_totalorderf
2938# endif
2939_GL_FUNCDECL_RPL (totalorderf, int, (float const *, float const *));
2940_GL_CXXALIAS_RPL (totalorderf, int, (float const *, float const *));
2941# else
2942# if !@HAVE_TOTALORDERF@
2943_GL_FUNCDECL_SYS (totalorderf, int, (float const *, float const *));
2944# endif
2945_GL_CXXALIAS_SYS (totalorderf, int, (float const *, float const *));
2946# endif
2947_GL_CXXALIASWARN (totalorderf);
2948#elif defined GNULIB_POSIXCHECK
2949# undef totalorderf
2950# if HAVE_RAW_DECL_TOTALORDERF
2951_GL_WARN_ON_USE (totalorderf, "totalorderf is unportable - "
2952 "use gnulib module totalorderf for portability");
2953# endif
2954#endif
2955
2956#if @GNULIB_TOTALORDER@
2957# if @REPLACE_TOTALORDER@
2958# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2959# undef totalorder
2960# define totalorder rpl_totalorder
2961# endif
2962_GL_FUNCDECL_RPL (totalorder, int, (double const *, double const *));
2963_GL_CXXALIAS_RPL (totalorder, int, (double const *, double const *));
2964# else
2965# if !@HAVE_TOTALORDER@
2966_GL_FUNCDECL_SYS (totalorder, int, (double const *, double const *));
2967# endif
2968_GL_CXXALIAS_SYS (totalorder, int, (double const *, double const *));
2969# endif
2970# if __GLIBC__ >= 2
2971_GL_CXXALIASWARN1 (totalorder, int, (double const *, double const *));
2972# endif
2973#elif defined GNULIB_POSIXCHECK
2974# undef totalorder
2975# if HAVE_RAW_DECL_TOTALORDER
2976_GL_WARN_ON_USE (totalorder, "totalorder is unportable - "
2977 "use gnulib module totalorder for portability");
2978# endif
2979#endif
2980
2981#if @GNULIB_TOTALORDERL@
2982# if @REPLACE_TOTALORDERL@
2983# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2984# undef totalorderl
2985# define totalorderl rpl_totalorderl
2986# endif
2987_GL_FUNCDECL_RPL (totalorderl, int,
2988 (long double const *, long double const *));
2989_GL_CXXALIAS_RPL (totalorderl, int,
2990 (long double const *, long double const *));
2991# else
2992# if !@HAVE_TOTALORDERL@
2993_GL_FUNCDECL_SYS (totalorderl, int,
2994 (long double const *, long double const *));
2995# endif
2996_GL_CXXALIAS_SYS (totalorderl, int,
2997 (long double const *, long double const *));
2998# endif
2999_GL_CXXALIASWARN (totalorderl);
3000#elif defined GNULIB_POSIXCHECK
3001# undef totalorderl
3002# if HAVE_RAW_DECL_TOTALORDERL
3003_GL_WARN_ON_USE (totalorderl, "totalorderl is unportable - "
3004 "use gnulib module totalorderl for portability");
3005# endif
3006#endif
3007
3008
3009#if @GNULIB_TOTALORDERMAGF@
3010# if @REPLACE_TOTALORDERMAGF@
3011# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
3012# undef totalordermagf
3013# define totalordermagf rpl_totalordermagf
3014# endif
3015_GL_FUNCDECL_RPL (totalordermagf, int, (float const *, float const *));
3016_GL_CXXALIAS_RPL (totalordermagf, int, (float const *, float const *));
3017# else
3018# if !@HAVE_TOTALORDERMAGF@
3019_GL_FUNCDECL_SYS (totalordermagf, int, (float const *, float const *));
3020# endif
3021_GL_CXXALIAS_SYS (totalordermagf, int, (float const *, float const *));
3022# endif
3023# if __GLIBC__ >= 2
3024_GL_CXXALIASWARN1 (totalordermagf, int, (float const *, float const *));
3025# endif
3026#elif defined GNULIB_POSIXCHECK
3027# undef totalordermagf
3028# if HAVE_RAW_DECL_TOTALORDERMAGF
3029_GL_WARN_ON_USE (totalordermagf, "totalordermagf is unportable - "
3030 "use gnulib module totalordermagf for portability");
3031# endif
3032#endif
3033
3034#if @GNULIB_TOTALORDERMAG@
3035# if @REPLACE_TOTALORDERMAG@
3036# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
3037# undef totalordermag
3038# define totalordermag rpl_totalordermag
3039# endif
3040_GL_FUNCDECL_RPL (totalordermag, int, (double const *, double const *));
3041_GL_CXXALIAS_RPL (totalordermag, int, (double const *, double const *));
3042# else
3043# if !@HAVE_TOTALORDERMAG@
3044_GL_FUNCDECL_SYS (totalordermag, int, (double const *, double const *));
3045# endif
3046_GL_CXXALIAS_SYS (totalordermag, int, (double const *, double const *));
3047# endif
3048# if __GLIBC__ >= 2
3049_GL_CXXALIASWARN1 (totalordermag, int, (double const *, double const *));
3050# endif
3051#elif defined GNULIB_POSIXCHECK
3052# undef totalordermag
3053# if HAVE_RAW_DECL_TOTALORDERMAG
3054_GL_WARN_ON_USE (totalordermag, "totalordermag is unportable - "
3055 "use gnulib module totalordermag for portability");
3056# endif
3057#endif
3058
3059#if @GNULIB_TOTALORDERMAGL@
3060# if @REPLACE_TOTALORDERMAGL@
3061# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
3062# undef totalordermagl
3063# define totalordermagl rpl_totalordermagl
3064# endif
3065_GL_FUNCDECL_RPL (totalordermagl, int,
3066 (long double const *, long double const *));
3067_GL_CXXALIAS_RPL (totalordermagl, int,
3068 (long double const *, long double const *));
3069# else
3070# if !@HAVE_TOTALORDERMAGL@
3071_GL_FUNCDECL_SYS (totalordermagl, int,
3072 (long double const *, long double const *));
3073# endif
3074_GL_CXXALIAS_SYS (totalordermagl, int,
3075 (long double const *, long double const *));
3076# endif
3077# if __GLIBC__ >= 2
3078_GL_CXXALIASWARN1 (totalordermagl, int,
3079 (long double const *, long double const *));
3080# endif
3081#elif defined GNULIB_POSIXCHECK
3082# undef totalordermagl
3083# if HAVE_RAW_DECL_TOTALORDERMAGL
3084_GL_WARN_ON_USE (totalordermagl, "totalordermagl is unportable - "
3085 "use gnulib module totalordermagl for portability");
3086# endif
3087#endif
3088
3089
2723_GL_INLINE_HEADER_END 3090_GL_INLINE_HEADER_END
2724 3091
2725#endif /* _@GUARD_PREFIX@_MATH_H */ 3092#endif /* _@GUARD_PREFIX@_MATH_H */
2726#endif /* _GL_INCLUDING_MATH_H */ 3093#endif /* _GL_INCLUDING_MATH_H */
2727#endif /* _@GUARD_PREFIX@_MATH_H */ 3094#endif /* _@GUARD_PREFIX@_MATH_H */
3095#endif