diff options
Diffstat (limited to 'math/math.h')
-rw-r--r-- | math/math.h | 59 |
1 files changed, 14 insertions, 45 deletions
diff --git a/math/math.h b/math/math.h index 1e300c4..b0d99cf 100644 --- a/math/math.h +++ b/math/math.h @@ -1,5 +1,5 @@ /* Declarations for math functions. - Copyright (C) 1991-2024 Free Software Foundation, Inc. + Copyright (C) 1991-2025 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -87,20 +87,24 @@ __BEGIN_DECLS #ifdef __USE_ISOC99 /* IEEE positive infinity. */ -# if __GNUC_PREREQ (3, 3) -# define INFINITY (__builtin_inff ()) -# else -# define INFINITY HUGE_VALF +# ifndef INFINITY +# if __GNUC_PREREQ (3, 3) +# define INFINITY (__builtin_inff ()) +# else +# define INFINITY HUGE_VALF +# endif # endif /* IEEE Not A Number. */ -# if __GNUC_PREREQ (3, 3) -# define NAN (__builtin_nanf ("")) -# else +# ifndef NAN +# if __GNUC_PREREQ (3, 3) +# define NAN (__builtin_nanf ("")) +# else /* This will raise an "invalid" exception outside static initializers, but is the best that can be done in ISO C while remaining a constant expression. */ -# define NAN (0.0f / 0.0f) +# define NAN (0.0f / 0.0f) +# endif # endif #endif /* __USE_ISOC99 */ @@ -268,42 +272,7 @@ enum }; #endif -/* The file <bits/mathcalls.h> contains the prototypes for all the - actual math functions. These macros are used for those prototypes, - so we can easily declare each function as both `name' and `__name', - and can declare the float versions `namef' and `__namef'. */ - -#define __SIMD_DECL(function) __CONCAT (__DECL_SIMD_, function) - -#define __MATHCALL_VEC(function, suffix, args) \ - __SIMD_DECL (__MATH_PRECNAME (function, suffix)) \ - __MATHCALL (function, suffix, args) - -#define __MATHDECL_VEC(type, function,suffix, args) \ - __SIMD_DECL (__MATH_PRECNAME (function, suffix)) \ - __MATHDECL(type, function,suffix, args) - -#define __MATHCALL(function,suffix, args) \ - __MATHDECL (_Mdouble_,function,suffix, args) -#define __MATHDECL(type, function,suffix, args) \ - __MATHDECL_1(type, function,suffix, args); \ - __MATHDECL_1(type, __CONCAT(__,function),suffix, args) -#define __MATHCALLX(function,suffix, args, attrib) \ - __MATHDECLX (_Mdouble_,function,suffix, args, attrib) -#define __MATHDECLX(type, function,suffix, args, attrib) \ - __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); \ - __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib) -#define __MATHDECL_1_IMPL(type, function, suffix, args) \ - extern type __MATH_PRECNAME(function,suffix) args __THROW -#define __MATHDECL_1(type, function, suffix, args) \ - __MATHDECL_1_IMPL(type, function, suffix, args) -/* Ignore the alias by default. The alias is only useful with - redirections. */ -#define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ - __MATHDECL_1(type, function, suffix, args) - -#define __MATHREDIR(type, function, suffix, args, to) \ - extern type __REDIRECT_NTH (__MATH_PRECNAME (function, suffix), args, to) +#include <bits/mathcalls-macros.h> #define _Mdouble_ double #define __MATH_PRECNAME(name,r) __CONCAT(name,r) |