22 template<
typename T_A,
typename T_B>
23 requires(std::is_arithmetic_v<T_A> && std::is_arithmetic_v<T_B>)
28 if constexpr(std::is_integral_v<T_A> && std::is_integral_v<T_B>)
41 static_assert(!
sizeof(T_A),
"Unsupported data type");
47 template<
typename T_A,
typename T_B>
48 requires(std::is_arithmetic_v<T_A> && std::is_arithmetic_v<T_B>)
53 if constexpr(std::is_integral_v<T_A> && std::is_integral_v<T_B>)
66 static_assert(!
sizeof(T_A),
"Unsupported data type");
74 template<std::
floating_po
int T_Arg>
85 template<std::
floating_po
int T_Arg>
96 template<std::
floating_po
int T_Arg>
#define ALPAKA_UNREACHABLE(...)
Before CUDA 11.5 nvcc is unable to correctly identify return statements in 'if constexpr' branches....
constexpr T arg(Complex< T > const &x)
Argument.
constexpr bool ieeeIsnan(T const &arg)
constexpr bool ieeeIsinf(T const &arg)
constexpr bool ieeeIsfinite(T const &arg)
constexpr auto min(auto const &a, auto const &b)
constexpr auto max(auto const &a, auto const &b)
constexpr auto is_decayed_v
Provides a decaying wrapper around std::is_same. Example: is_decayed_v<volatile float,...
constexpr auto operator()(StlMath, T_Arg const &arg) const -> bool
constexpr auto operator()(StlMath, T_Arg const &arg) const -> bool
constexpr auto operator()(StlMath, T_Arg const &arg) const -> bool
constexpr auto operator()(StlMath, T_A const &a, T_B const &b) const
constexpr auto operator()(StlMath, T_A const &a, T_B const &b) const