xref: /openbsd-src/gnu/gcc/fixincludes/tests/base/iso/math_c99.h (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1*404b540aSrobert /*  DO NOT EDIT THIS FILE.
2*404b540aSrobert 
3*404b540aSrobert     It has been auto-edited by fixincludes from:
4*404b540aSrobert 
5*404b540aSrobert 	"fixinc/tests/inc/iso/math_c99.h"
6*404b540aSrobert 
7*404b540aSrobert     This had to be done to correct non-standard usages in the
8*404b540aSrobert     original, manufacturer supplied header file.  */
9*404b540aSrobert 
10*404b540aSrobert 
11*404b540aSrobert 
12*404b540aSrobert #if defined( SOLARIS_MATH_1_CHECK )
13*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
14*404b540aSrobert #undef	HUGE_VAL
15*404b540aSrobert #define	HUGE_VAL	(__builtin_huge_val())
16*404b540aSrobert #undef	HUGE_VALF
17*404b540aSrobert #define	HUGE_VALF	(__builtin_huge_valf())
18*404b540aSrobert #undef	HUGE_VALL
19*404b540aSrobert #define	HUGE_VALL	(__builtin_huge_vall())
20*404b540aSrobert #endif  /* SOLARIS_MATH_1_CHECK */
21*404b540aSrobert 
22*404b540aSrobert 
23*404b540aSrobert #if defined( SOLARIS_MATH_2_CHECK )
24*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
25*404b540aSrobert #undef	INFINITY
26*404b540aSrobert #define	INFINITY	(__builtin_inff())
27*404b540aSrobert #endif  /* SOLARIS_MATH_2_CHECK */
28*404b540aSrobert 
29*404b540aSrobert 
30*404b540aSrobert #if defined( SOLARIS_MATH_3_CHECK )
31*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
32*404b540aSrobert #undef	NAN
33*404b540aSrobert #define	NAN		(__builtin_nanf(""))
34*404b540aSrobert #endif  /* SOLARIS_MATH_3_CHECK */
35*404b540aSrobert 
36*404b540aSrobert 
37*404b540aSrobert #if defined( SOLARIS_MATH_4_CHECK )
38*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
39*404b540aSrobert #undef	fpclassify
40*404b540aSrobert #define	fpclassify(x) \
41*404b540aSrobert   __extension__ ({ __typeof(x) __x_fp = (x); \
42*404b540aSrobert 		   isnan(__x_fp) \
43*404b540aSrobert 		     ? FP_NAN \
44*404b540aSrobert 		     : isinf(__x_fp) \
45*404b540aSrobert 		       ? FP_INFINITE \
46*404b540aSrobert 		       : isnormal(__x_fp) \
47*404b540aSrobert 			 ? FP_NORMAL \
48*404b540aSrobert 			 : __x_fp == 0.0 \
49*404b540aSrobert 			   ? FP_ZERO \
50*404b540aSrobert 			   : FP_SUBNORMAL; })
51*404b540aSrobert #endif  /* SOLARIS_MATH_4_CHECK */
52*404b540aSrobert 
53*404b540aSrobert 
54*404b540aSrobert #if defined( SOLARIS_MATH_5_CHECK )
55*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
56*404b540aSrobert #undef	isfinite
57*404b540aSrobert #define	isfinite(x) \
58*404b540aSrobert   __extension__ ({ __typeof (x) __x_f = (x); \
59*404b540aSrobert 		   __builtin_expect(!isnan(__x_f - __x_f), 1); })
60*404b540aSrobert #endif  /* SOLARIS_MATH_5_CHECK */
61*404b540aSrobert 
62*404b540aSrobert 
63*404b540aSrobert #if defined( SOLARIS_MATH_6_CHECK )
64*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
65*404b540aSrobert #undef	isinf
66*404b540aSrobert #define	isinf(x) \
67*404b540aSrobert   __extension__ ({ __typeof (x) __x_i = (x); \
68*404b540aSrobert 		   __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })
69*404b540aSrobert #endif  /* SOLARIS_MATH_6_CHECK */
70*404b540aSrobert 
71*404b540aSrobert 
72*404b540aSrobert #if defined( SOLARIS_MATH_7_CHECK )
73*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
74*404b540aSrobert #undef	isnormal
75*404b540aSrobert #define	isnormal(x) \
76*404b540aSrobert   __extension__ ({ __typeof(x) __x_n = (x); \
77*404b540aSrobert 		   if (__x_n < 0.0) __x_n = -__x_n; \
78*404b540aSrobert 		   __builtin_expect(isfinite(__x_n) \
79*404b540aSrobert 				    && (sizeof(__x_n) == sizeof(float) \
80*404b540aSrobert 					  ? __x_n >= __FLT_MIN__ \
81*404b540aSrobert 					  : sizeof(__x_n) == sizeof(long double) \
82*404b540aSrobert 					    ? __x_n >= __LDBL_MIN__ \
83*404b540aSrobert 					    : __x_n >= __DBL_MIN__), 1); })
84*404b540aSrobert #endif  /* SOLARIS_MATH_7_CHECK */
85*404b540aSrobert 
86*404b540aSrobert 
87*404b540aSrobert #if defined( SOLARIS_MATH_8_CHECK )
88*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
89*404b540aSrobert #undef	signbit
90*404b540aSrobert #define	signbit(x)	(sizeof(x) == sizeof(float) \
91*404b540aSrobert 			   ? __builtin_signbitf(x) \
92*404b540aSrobert 			   : sizeof(x) == sizeof(long double) \
93*404b540aSrobert 			     ? __builtin_signbitl(x) \
94*404b540aSrobert 			     : __builtin_signbit(x))
95*404b540aSrobert #endif  /* SOLARIS_MATH_8_CHECK */
96*404b540aSrobert 
97*404b540aSrobert 
98*404b540aSrobert #if defined( SOLARIS_MATH_9_CHECK )
99*404b540aSrobert #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
100*404b540aSrobert #undef	isgreater
101*404b540aSrobert #define	isgreater(x, y)		__builtin_isgreater(x, y)
102*404b540aSrobert #undef	isgreaterequal
103*404b540aSrobert #define	isgreaterequal(x, y)	__builtin_isgreaterequal(x, y)
104*404b540aSrobert #undef	isless
105*404b540aSrobert #define	isless(x, y)		__builtin_isless(x, y)
106*404b540aSrobert #undef	islessequal
107*404b540aSrobert #define	islessequal(x, y)	__builtin_islessequal(x, y)
108*404b540aSrobert #undef	islessgreater
109*404b540aSrobert #define	islessgreater(x, y)	__builtin_islessgreater(x, y)
110*404b540aSrobert #undef	isunordered
111*404b540aSrobert #define	isunordered(x, y)	__builtin_isunordered(x, y)
112*404b540aSrobert #endif  /* SOLARIS_MATH_9_CHECK */
113