5#include <metal_integer>
27 metal::enable_if_t<metal::is_integral_v<T> & !metal::is_signed_v<T>, T>
32 metal::enable_if_t<metal::is_integral_v<T> & metal::is_signed_v<T>, T>
35 if (r != 0 && (r < 0 != y < 0)) {
41 metal::enable_if_t<!metal::is_integral_v<T>, T>
operator()(T x, T y) {
43 if (r != 0 && (r < 0 != y < 0)) {
105 template <
typename T>
108 return metal::numeric_limits<T>::quiet_NaN();
110 constexpr T inf = metal::numeric_limits<T>::infinity();
113 return (minval == -inf || maxval == inf)
120 template <
typename T>
121 metal::enable_if_t<metal::is_integral_v<T>, T>
operator()(T x, T y) {
125 template <
typename T>
126 metal::enable_if_t<!metal::is_integral_v<T>, T>
operator()(T x, T y) {
130 return x > y ? x : y;
138 return x > y ? x : y;
143 template <
typename T>
144 metal::enable_if_t<metal::is_integral_v<T>, T>
operator()(T x, T y) {
148 template <
typename T>
149 metal::enable_if_t<!metal::is_integral_v<T>, T>
operator()(T x, T y) {
153 return x < y ? x : y;
161 return x < y ? x : y;
166 template <
typename T>
173 template <
typename T>
184 template <
typename T>
189 template <
typename T>
207 auto phase = y.
imag * x_ln_r + y.
real * x_theta;
213 template <
typename T>
220 template <
typename T>
227 template <
typename T>
234 template <
typename T>
241 template <
typename T>
248 template <
typename T>
255 template <
typename T>
262 template <
typename T>
269 template <
typename T>
T operator()(T x, T y)
Definition binary.h:13
T operator()(T y, T x)
Definition binary.h:270
T operator()(T x, T y)
Definition binary.h:235
T operator()(T x, T y)
Definition binary.h:242
T operator()(T x, T y)
Definition binary.h:249
T operator()(T x, T y)
Definition binary.h:20
bool operator()(T x, T y)
Definition binary.h:56
bool operator()(T x, T y)
Definition binary.h:85
bool operator()(T x, T y)
Definition binary.h:78
T operator()(T x, T y)
Definition binary.h:256
bool operator()(T x, T y)
Definition binary.h:99
bool operator()(T x, T y)
Definition binary.h:92
T operator()(T x, T y)
Definition binary.h:106
T operator()(T x, T y)
Definition binary.h:221
T operator()(T x, T y)
Definition binary.h:228
metal::enable_if_t<!metal::is_integral_v< T >, T > operator()(T x, T y)
Definition binary.h:126
metal::enable_if_t< metal::is_integral_v< T >, T > operator()(T x, T y)
Definition binary.h:121
complex64_t operator()(complex64_t x, complex64_t y)
Definition binary.h:134
metal::enable_if_t<!metal::is_integral_v< T >, T > operator()(T x, T y)
Definition binary.h:149
complex64_t operator()(complex64_t x, complex64_t y)
Definition binary.h:157
metal::enable_if_t< metal::is_integral_v< T >, T > operator()(T x, T y)
Definition binary.h:144
T operator()(T x, T y)
Definition binary.h:167
bool operator()(T x, T y)
Definition binary.h:63
bool operator()(complex64_t x, complex64_t y)
Definition binary.h:67
bool operator()(complex64_t x, complex64_t y)
Definition binary.h:178
bool operator()(T x, T y)
Definition binary.h:174
complex64_t operator()(complex64_t x, complex64_t y)
Definition binary.h:203
metal::enable_if_t<!metal::is_integral_v< T >, T > operator()(T base, T exp)
Definition binary.h:185
metal::enable_if_t< metal::is_integral_v< T >, T > operator()(T base, T exp)
Definition binary.h:190
metal::enable_if_t< metal::is_integral_v< T > &metal::is_signed_v< T >, T > operator()(T x, T y)
Definition binary.h:33
metal::enable_if_t<!metal::is_integral_v< T >, T > operator()(T x, T y)
Definition binary.h:41
metal::enable_if_t< metal::is_integral_v< T > &!metal::is_signed_v< T >, T > operator()(T x, T y)
Definition binary.h:28
complex64_t operator()(complex64_t x, complex64_t y)
Definition binary.h:49
T operator()(T x, T y)
Definition binary.h:263
T operator()(T x, T y)
Definition binary.h:214
float imag
Definition complex.h:22
float real
Definition complex.h:21