Skip to content

Commit 978e551

Browse files
Use sycl::ext::oneapi::experimental::pow in pow.hpp for complexes in-place
1 parent f4859ed commit 978e551

File tree

1 file changed

+11
-2
lines changed
  • dpctl/tensor/libtensor/include/kernels/elementwise_functions

1 file changed

+11
-2
lines changed

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

+11-2
Original file line numberDiff line numberDiff line change
@@ -361,11 +361,20 @@ template <typename argT, typename resT> struct PowInplaceFunctor
361361
tmp1 *= tmp1;
362362
}
363363
res = res_tmp;
364-
return;
364+
}
365+
else if constexpr (tu_ns::is_complex<argT>::value &&
366+
tu_ns::is_complex<resT>::value)
367+
{
368+
using r_resT = typename resT::value_type;
369+
using r_argT = typename argT::value_type;
370+
371+
res = exprm_ns::pow(exprm_ns::complex<r_resT>(res),
372+
exprm_ns::complex<r_argT>(in));
365373
}
366374
else {
367375
res = std::pow(res, in);
368-
};
376+
}
377+
return;
369378
}
370379

371380
template <int vec_sz>

0 commit comments

Comments
 (0)