Skip to content

Commit 8bcc337

Browse files
committed
Update imag to use a constant value of 0 for real-valued dtypes
1 parent a54dd82 commit 8bcc337

File tree

1 file changed

+5
-3
lines changed
  • dpctl/tensor/libtensor/include/kernels/elementwise_functions

1 file changed

+5
-3
lines changed

dpctl/tensor/libtensor/include/kernels/elementwise_functions/imag.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,16 @@ using dpctl::tensor::ssize_t;
5353
namespace td_ns = dpctl::tensor::type_dispatch;
5454

5555
using dpctl::tensor::type_utils::is_complex;
56+
using dpctl::tensor::type_utils::is_complex_v;
5657

5758
template <typename argT, typename resT> struct ImagFunctor
5859
{
5960

6061
// is function constant for given argT
61-
using is_constant = typename std::false_type;
62+
using is_constant =
63+
typename std::is_same<is_complex<argT>, std::false_type>;
6264
// constant value, if constant
63-
// constexpr resT constant_value = resT{};
65+
static constexpr resT constant_value = resT{0};
6466
// is function defined for sycl::vec
6567
using supports_vec = typename std::false_type;
6668
// do both argTy and resTy support sugroup store/load operation
@@ -74,7 +76,7 @@ template <typename argT, typename resT> struct ImagFunctor
7476
}
7577
else {
7678
static_assert(std::is_same_v<resT, argT>);
77-
return resT{0};
79+
return constant_value;
7880
}
7981
}
8082
};

0 commit comments

Comments
 (0)