13 !is_same_v<T, complex64_t> && is_convertible_v<T, float>;
17 !is_same_v<T, complex64_t> &&
18 (is_convertible_v<float, T> || is_convertible_v<bfloat16_t, T>);
32 typename =
typename enable_if<can_convert_to_complex64<T>>::type>
37 typename =
typename enable_if<can_convert_to_complex64<T>>::type>
42 typename =
typename enable_if<can_convert_to_complex64<T>>::type>
47 typename =
typename enable_if<can_convert_to_complex64<T>>::type>
53 typename =
typename enable_if<can_convert_from_complex64<T>>::type>
54 constexpr operator T() const thread {
55 return static_cast<T
>(
real);
60 typename =
typename enable_if<can_convert_from_complex64<T>>::type>
61 constexpr operator T() const threadgroup {
62 return static_cast<T
>(
real);
67 typename =
typename enable_if<can_convert_from_complex64<T>>::type>
68 constexpr operator T() const device {
69 return static_cast<T
>(
real);
74 typename =
typename enable_if<can_convert_from_complex64<T>>::type>
75 constexpr operator T() const constant {
76 return static_cast<T
>(
real);
120 return {x / denom, y / denom};
126 if (real != 0 && (real < 0 != b.
real < 0)) {
129 if (imag != 0 && (imag < 0 != b.
imag < 0)) {
constexpr complex64_t(T x) const ant
Definition complex.h:48
constexpr complex64_t()
Definition complex.h:26
constexpr complex64_t(T x) thread
Definition complex.h:33
constexpr complex64_t(T x) threadgroup
Definition complex.h:38
constexpr complex64_t() threadgroup
Definition complex.h:27
float imag
Definition complex.h:22
float real
Definition complex.h:21
constexpr complex64_t(T x) device
Definition complex.h:43
constexpr complex64_t(float real, float imag)
Definition complex.h:25