Lines Matching +full:y +full:-
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
41 * __tg_impl_simple(x, y, z, fnl, fn, fnf, ...)
42 * Invokes fnl() if the corresponding real type of x, y or z is long
45 * __tg_impl_full(x, y, cfnl, cfn, cfnf, fnl, fn, fnf, ...)
46 * Invokes [c]fnl() if the corresponding real type of x or y is long
49 * any of x or y is a complex number.
58 * principle be reused for non-C11 compilers, but due to an integer
59 * promotion bug for complex types in GCC 4.2, simply let non-C11
77 #define __tg_impl_simple(x, y, z, fnl, fn, fnf, ...) \ argument
79 __tg_type(x) + __tg_type(y) + __tg_type(z), \
81 #define __tg_impl_full(x, y, cfnl, cfn, cfnf, fnl, fn, fnf, ...) \ argument
83 __tg_type(x) + __tg_type(y), \
92 #define __tg_impl_simple(x, y, z, fnl, fn, fnf, ...) \ argument
94 __tg_generic_simple(y, \
98 __tg_generic_simple(y, \
102 __tg_generic_simple(y, \
112 #define __tg_impl_full(x, y, cfnl, cfn, cfnf, fnl, fn, fnf, ...) \ argument
114 __tg_generic_full(y, cfnl, cfnl, cfnl, cfnl, cfnl, cfnl), \
115 __tg_generic_full(y, cfnl, cfn , cfn , cfnl, cfn , cfn ), \
116 __tg_generic_full(y, cfnl, cfn , cfnf, cfnl, cfn , cfnf), \
117 __tg_generic_full(y, cfnl, cfnl, cfnl, fnl , fnl , fnl ), \
118 __tg_generic_full(y, cfnl, cfn , cfn , fnl , fn , fn ), \
119 __tg_generic_full(y, cfnl, cfn , cfnf, fnl , fn , fnf )) \
128 #define __tg_simple2(x, y, fn) \ argument
129 __tg_impl_simple(x, x, y, fn##l, fn, fn##f, x, y)
130 #define __tg_simple3(x, y, z, fn) \ argument
131 __tg_impl_simple(x, y, z, fn##l, fn, fn##f, x, y, z)
136 #define __tg_full2(x, y, fn) \ argument
137 __tg_impl_full(x, y, c##fn##l, c##fn, c##fn##f, fn##l, fn, fn##f, x, y)
139 /* 7.22#4 -- These macros expand to real or complex functions, depending on
155 #define pow(x, y) __tg_full2(x, y, pow) argument
158 /* "The corresponding type-generic macro for fabs and cabs is fabs." */
162 /* 7.22#5 -- These macros are only defined for arguments with real type. */
163 #define atan2(x, y) __tg_simple2(x, y, atan2) argument
166 #define copysign(x, y) __tg_simple2(x, y, copysign) argument
171 #define fdim(x, y) __tg_simple2(x, y, fdim) argument
173 #define fma(x, y, z) __tg_simple3(x, y, z, fma) argument
174 #define fmax(x, y) __tg_simple2(x, y, fmax) argument
175 #define fmin(x, y) __tg_simple2(x, y, fmin) argument
176 #define fmod(x, y) __tg_simple2(x, y, fmod) argument
177 #define frexp(x, y) __tg_simplev(x, frexp, x, y) argument
178 #define hypot(x, y) __tg_simple2(x, y, hypot) argument
180 #define ldexp(x, y) __tg_simplev(x, ldexp, x, y) argument
191 #define nextafter(x, y) __tg_simple2(x, y, nextafter) argument
192 #define nexttoward(x, y) __tg_simplev(x, nexttoward, x, y) argument
193 #define remainder(x, y) __tg_simple2(x, y, remainder) argument
194 #define remquo(x, y, z) __tg_impl_simple(x, x, y, remquol, remquo, \ argument
195 remquof, x, y, z)
198 #define scalbn(x, y) __tg_simplev(x, scalbn, x, y) argument
199 #define scalbln(x, y) __tg_simplev(x, scalbln, x, y) argument
203 /* 7.22#6 -- These macros always expand to complex functions. */