19#if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED)
265# if !defined(ALPAKA_HOST_ONLY)
267# if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) && !BOOST_LANG_CUDA
268# error If ALPAKA_ACC_GPU_CUDA_ENABLED is set, the compiler has to support CUDA!
271# if defined(ALPAKA_ACC_GPU_HIP_ENABLED) && !BOOST_LANG_HIP
272# error If ALPAKA_ACC_GPU_HIP_ENABLED is set, the compiler has to support HIP!
275# if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) && defined(__CUDA_ARCH__)
276# include <cuda_runtime.h>
279# if defined(ALPAKA_ACC_GPU_HIP_ENABLED) && defined(__HIP_DEVICE_COMPILE__)
280# include <hip/math_functions.h>
286 template<
typename TArg>
291 if constexpr(is_decayed_v<TArg, float>)
293 else if constexpr(is_decayed_v<TArg, double>)
295 else if constexpr(is_decayed_v<TArg, int>)
297 else if constexpr(is_decayed_v<TArg, long int>)
299 else if constexpr(is_decayed_v<TArg, long long int>)
302 static_assert(!
sizeof(TArg),
"Unsupported data type");
309 template<
typename TArg>
310 struct Acos<AcosUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
312 __host__ __device__
auto operator()(AcosUniformCudaHipBuiltIn
const& , TArg
const&
arg)
314 if constexpr(is_decayed_v<TArg, float>)
316 else if constexpr(is_decayed_v<TArg, double>)
319 static_assert(!
sizeof(TArg),
"Unsupported data type");
326 template<
typename TArg>
327 struct Acosh<AcoshUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
329 __host__ __device__
auto operator()(AcoshUniformCudaHipBuiltIn
const& , TArg
const&
arg)
331 if constexpr(is_decayed_v<TArg, float>)
332 return ::acoshf(
arg);
333 else if constexpr(is_decayed_v<TArg, double>)
336 static_assert(!
sizeof(TArg),
"Unsupported data type");
343 template<
typename TArgument>
344 struct Arg<ArgUniformCudaHipBuiltIn, TArgument,
std::enable_if_t<std::is_floating_point_v<TArgument>>>
347 template<
typename TCtx>
348 __host__ __device__
auto operator()(TCtx
const& ctx, TArgument
const& argument)
351 return atan2(ctx, TArgument{0.0}, argument);
356 template<
typename TArg>
357 struct Asin<AsinUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
359 __host__ __device__
auto operator()(AsinUniformCudaHipBuiltIn
const& , TArg
const&
arg)
361 if constexpr(is_decayed_v<TArg, float>)
363 else if constexpr(is_decayed_v<TArg, double>)
366 static_assert(!
sizeof(TArg),
"Unsupported data type");
373 template<
typename TArg>
374 struct Asinh<AsinhUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
376 __host__ __device__
auto operator()(AsinhUniformCudaHipBuiltIn
const& , TArg
const&
arg)
378 if constexpr(is_decayed_v<TArg, float>)
379 return ::asinhf(
arg);
380 else if constexpr(is_decayed_v<TArg, double>)
383 static_assert(!
sizeof(TArg),
"Unsupported data type");
390 template<
typename TArg>
391 struct Atan<AtanUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
393 __host__ __device__
auto operator()(AtanUniformCudaHipBuiltIn
const& , TArg
const&
arg)
395 if constexpr(is_decayed_v<TArg, float>)
397 else if constexpr(is_decayed_v<TArg, double>)
400 static_assert(!
sizeof(TArg),
"Unsupported data type");
407 template<
typename TArg>
408 struct Atanh<AtanhUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
410 __host__ __device__
auto operator()(AtanhUniformCudaHipBuiltIn
const& , TArg
const&
arg)
412 if constexpr(is_decayed_v<TArg, float>)
413 return ::atanhf(
arg);
414 else if constexpr(is_decayed_v<TArg, double>)
417 static_assert(!
sizeof(TArg),
"Unsupported data type");
424 template<
typename Ty,
typename Tx>
426 Atan2UniformCudaHipBuiltIn,
429 std::enable_if_t<std::is_floating_point_v<Ty> && std::is_floating_point_v<Tx>>>
432 Atan2UniformCudaHipBuiltIn
const& ,
436 if constexpr(is_decayed_v<Ty, float> && is_decayed_v<Tx, float>)
437 return ::atan2f(y, x);
438 else if constexpr(is_decayed_v<Ty, double> || is_decayed_v<Tx, double>)
439 return ::atan2(y, x);
441 static_assert(!
sizeof(Ty),
"Unsupported data type");
448 template<
typename TArg>
449 struct Cbrt<CbrtUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_arithmetic_v<TArg>>>
451 __host__ __device__
auto operator()(CbrtUniformCudaHipBuiltIn
const& , TArg
const&
arg)
453 if constexpr(is_decayed_v<TArg, float>)
455 else if constexpr(is_decayed_v<TArg, double> || std::is_integral_v<TArg>)
458 static_assert(!
sizeof(TArg),
"Unsupported data type");
465 template<
typename TArg>
466 struct Ceil<CeilUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
468 __host__ __device__
auto operator()(CeilUniformCudaHipBuiltIn
const& , TArg
const&
arg)
470 if constexpr(is_decayed_v<TArg, float>)
472 else if constexpr(is_decayed_v<TArg, double>)
475 static_assert(!
sizeof(TArg),
"Unsupported data type");
482 template<
typename TArg>
483 struct Conj<ConjUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
485 __host__ __device__
auto operator()(ConjUniformCudaHipBuiltIn
const& , TArg
const&
arg)
487 return Complex<TArg>{
arg, TArg{0.0}};
492 template<
typename TMag,
typename TSgn>
494 CopysignUniformCudaHipBuiltIn,
497 std::enable_if_t<std::is_floating_point_v<TMag> && std::is_floating_point_v<TSgn>>>
500 CopysignUniformCudaHipBuiltIn
const& ,
504 if constexpr(is_decayed_v<TMag, float> && is_decayed_v<TSgn, float>)
505 return ::copysignf(mag, sgn);
506 else if constexpr(is_decayed_v<TMag, double> || is_decayed_v<TSgn, double>)
507 return ::copysign(mag, sgn);
509 static_assert(!
sizeof(TMag),
"Unsupported data type");
516 template<
typename TArg>
517 struct Cos<CosUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
519 __host__ __device__
auto operator()(CosUniformCudaHipBuiltIn
const& , TArg
const&
arg)
521 if constexpr(is_decayed_v<TArg, float>)
523 else if constexpr(is_decayed_v<TArg, double>)
526 static_assert(!
sizeof(TArg),
"Unsupported data type");
533 template<
typename TArg>
534 struct Cosh<CoshUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
536 __host__ __device__
auto operator()(CoshUniformCudaHipBuiltIn
const& , TArg
const&
arg)
538 if constexpr(is_decayed_v<TArg, float>)
540 else if constexpr(is_decayed_v<TArg, double>)
543 static_assert(!
sizeof(TArg),
"Unsupported data type");
550 template<
typename TArg>
551 struct Erf<ErfUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
553 __host__ __device__
auto operator()(ErfUniformCudaHipBuiltIn
const& , TArg
const&
arg)
555 if constexpr(is_decayed_v<TArg, float>)
557 else if constexpr(is_decayed_v<TArg, double>)
560 static_assert(!
sizeof(TArg),
"Unsupported data type");
567 template<
typename TArg>
568 struct Exp<ExpUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
570 __host__ __device__
auto operator()(ExpUniformCudaHipBuiltIn
const& , TArg
const&
arg)
572 if constexpr(is_decayed_v<TArg, float>)
574 else if constexpr(is_decayed_v<TArg, double>)
577 static_assert(!
sizeof(TArg),
"Unsupported data type");
584 template<
typename TArg>
585 struct Floor<FloorUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
587 __host__ __device__
auto operator()(FloorUniformCudaHipBuiltIn
const& , TArg
const&
arg)
589 if constexpr(is_decayed_v<TArg, float>)
590 return ::floorf(
arg);
591 else if constexpr(is_decayed_v<TArg, double>)
594 static_assert(!
sizeof(TArg),
"Unsupported data type");
601 template<
typename Tx,
typename Ty,
typename Tz>
603 FmaUniformCudaHipBuiltIn,
608 std::is_floating_point_v<Tx> && std::is_floating_point_v<Ty> && std::is_floating_point_v<Tz>>>
611 FmaUniformCudaHipBuiltIn
const& ,
616 if constexpr(is_decayed_v<Tx, float> && is_decayed_v<Ty, float> && is_decayed_v<Tz, float>)
617 return ::fmaf(x, y, z);
618 else if constexpr(is_decayed_v<Tx, double> || is_decayed_v<Ty, double> || is_decayed_v<Tz, double>)
619 return ::fma(x, y, z);
621 static_assert(!
sizeof(Tx),
"Unsupported data type");
623 using Ret [[maybe_unused]] = std::conditional_t<
624 is_decayed_v<Tx, float> && is_decayed_v<Ty, float> && is_decayed_v<Tz, float>,
632 template<
typename Tx,
typename Ty>
634 FmodUniformCudaHipBuiltIn,
637 std::enable_if_t<std::is_floating_point_v<Tx> && std::is_floating_point_v<Ty>>>
640 FmodUniformCudaHipBuiltIn
const& ,
644 if constexpr(is_decayed_v<Tx, float> && is_decayed_v<Ty, float>)
645 return ::fmodf(x, y);
646 else if constexpr(is_decayed_v<Tx, double> || is_decayed_v<Ty, double>)
649 static_assert(!
sizeof(Tx),
"Unsupported data type");
651 using Ret [[maybe_unused]]
652 = std::conditional_t<is_decayed_v<Tx, float> && is_decayed_v<Ty, float>, float,
double>;
658 template<
typename TArg>
659 struct Isfinite<IsfiniteUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
661 __host__ __device__
auto operator()(IsfiniteUniformCudaHipBuiltIn
const& , TArg
const&
arg)
663 return ::isfinite(
arg);
668 template<
typename TArg>
669 struct Isinf<IsinfUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
671 __host__ __device__
auto operator()(IsinfUniformCudaHipBuiltIn
const& , TArg
const&
arg)
678 template<
typename TArg>
679 struct Isnan<IsnanUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
681 __host__ __device__
auto operator()(IsnanUniformCudaHipBuiltIn
const& , TArg
const&
arg)
688 template<
typename TArg>
689 struct Log<LogUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
691 __host__ __device__
auto operator()(LogUniformCudaHipBuiltIn
const& , TArg
const&
arg)
693 if constexpr(is_decayed_v<TArg, float>)
695 else if constexpr(is_decayed_v<TArg, double>)
698 static_assert(!
sizeof(TArg),
"Unsupported data type");
705 template<
typename TArg>
706 struct Log2<Log2UniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
708 __host__ __device__
auto operator()(Log2UniformCudaHipBuiltIn
const& , TArg
const&
arg)
710 if constexpr(is_decayed_v<TArg, float>)
712 else if constexpr(is_decayed_v<TArg, double>)
715 static_assert(!
sizeof(TArg),
"Unsupported data type");
722 template<
typename TArg>
723 struct Log10<Log10UniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
725 __host__ __device__
auto operator()(Log10UniformCudaHipBuiltIn
const& , TArg
const&
arg)
727 if constexpr(is_decayed_v<TArg, float>)
728 return ::log10f(
arg);
729 else if constexpr(is_decayed_v<TArg, double>)
732 static_assert(!
sizeof(TArg),
"Unsupported data type");
739 template<
typename Tx,
typename Ty>
741 MaxUniformCudaHipBuiltIn,
744 std::enable_if_t<std::is_arithmetic_v<Tx> && std::is_arithmetic_v<Ty>>>
747 MaxUniformCudaHipBuiltIn
const& ,
751 if constexpr(std::is_integral_v<Tx> && std::is_integral_v<Ty>)
753 else if constexpr(is_decayed_v<Tx, float> && is_decayed_v<Ty, float>)
754 return ::fmaxf(x, y);
756 is_decayed_v<Tx, double> || is_decayed_v<Ty, double>
757 || (is_decayed_v<Tx, float> && std::is_integral_v<Ty>)
758 || (std::is_integral_v<Tx> && is_decayed_v<Ty, float>) )
761 static_assert(!
sizeof(Tx),
"Unsupported data type");
763 using Ret [[maybe_unused]] = std::conditional_t<
764 std::is_integral_v<Tx> && std::is_integral_v<Ty>,
765 decltype(
::max(x, y)),
766 std::conditional_t<is_decayed_v<Tx, float> && is_decayed_v<Ty, float>,
float,
double>>;
772 template<
typename Tx,
typename Ty>
774 MinUniformCudaHipBuiltIn,
777 std::enable_if_t<std::is_arithmetic_v<Tx> && std::is_arithmetic_v<Ty>>>
780 MinUniformCudaHipBuiltIn
const& ,
784 if constexpr(std::is_integral_v<Tx> && std::is_integral_v<Ty>)
786 else if constexpr(is_decayed_v<Tx, float> && is_decayed_v<Ty, float>)
787 return ::fminf(x, y);
789 is_decayed_v<Tx, double> || is_decayed_v<Ty, double>
790 || (is_decayed_v<Tx, float> && std::is_integral_v<Ty>)
791 || (std::is_integral_v<Tx> && is_decayed_v<Ty, float>) )
794 static_assert(!
sizeof(Tx),
"Unsupported data type");
796 using Ret [[maybe_unused]] = std::conditional_t<
797 std::is_integral_v<Tx> && std::is_integral_v<Ty>,
798 decltype(
::min(x, y)),
799 std::conditional_t<is_decayed_v<Tx, float> && is_decayed_v<Ty, float>,
float,
double>>;
805 template<
typename TBase,
typename TExp>
807 PowUniformCudaHipBuiltIn,
810 std::enable_if_t<std::is_floating_point_v<TBase> && std::is_floating_point_v<TExp>>>
813 PowUniformCudaHipBuiltIn
const& ,
817 if constexpr(is_decayed_v<TBase, float> && is_decayed_v<TExp, float>)
818 return ::powf(base,
exp);
819 else if constexpr(is_decayed_v<TBase, double> || is_decayed_v<TExp, double>)
820 return ::pow(
static_cast<double>(base),
static_cast<double>(
exp));
822 static_assert(!
sizeof(TBase),
"Unsupported data type");
824 using Ret [[maybe_unused]]
825 = std::conditional_t<is_decayed_v<TBase, float> && is_decayed_v<TExp, float>, float,
double>;
831 template<
typename Tx,
typename Ty>
833 RemainderUniformCudaHipBuiltIn,
836 std::enable_if_t<std::is_floating_point_v<Tx> && std::is_floating_point_v<Ty>>>
839 RemainderUniformCudaHipBuiltIn
const& ,
843 if constexpr(is_decayed_v<Tx, float> && is_decayed_v<Ty, float>)
844 return ::remainderf(x, y);
845 else if constexpr(is_decayed_v<Tx, double> || is_decayed_v<Ty, double>)
846 return ::remainder(x, y);
848 static_assert(!
sizeof(Tx),
"Unsupported data type");
850 using Ret [[maybe_unused]]
851 = std::conditional_t<is_decayed_v<Tx, float> && is_decayed_v<Ty, float>, float,
double>;
857 template<
typename TArg>
858 struct Round<RoundUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
860 __host__ __device__
auto operator()(RoundUniformCudaHipBuiltIn
const& , TArg
const&
arg)
862 if constexpr(is_decayed_v<TArg, float>)
863 return ::roundf(
arg);
864 else if constexpr(is_decayed_v<TArg, double>)
867 static_assert(!
sizeof(TArg),
"Unsupported data type");
874 template<
typename TArg>
875 struct Lround<RoundUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
877 __host__ __device__
auto operator()(RoundUniformCudaHipBuiltIn
const& , TArg
const&
arg)
879 if constexpr(is_decayed_v<TArg, float>)
880 return ::lroundf(
arg);
881 else if constexpr(is_decayed_v<TArg, double>)
882 return ::lround(
arg);
884 static_assert(!
sizeof(TArg),
"Unsupported data type");
891 template<
typename TArg>
892 struct Llround<RoundUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
894 __host__ __device__
auto operator()(RoundUniformCudaHipBuiltIn
const& , TArg
const&
arg)
896 if constexpr(is_decayed_v<TArg, float>)
897 return ::llroundf(
arg);
898 else if constexpr(is_decayed_v<TArg, double>)
899 return ::llround(
arg);
901 static_assert(!
sizeof(TArg),
"Unsupported data type");
904 using Ret [[maybe_unused]] =
long long;
910 template<
typename TArg>
911 struct Rsqrt<RsqrtUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_arithmetic_v<TArg>>>
913 __host__ __device__
auto operator()(RsqrtUniformCudaHipBuiltIn
const& , TArg
const&
arg)
915 if constexpr(is_decayed_v<TArg, float>)
916 return ::rsqrtf(
arg);
917 else if constexpr(is_decayed_v<TArg, double> || std::is_integral_v<TArg>)
920 static_assert(!
sizeof(TArg),
"Unsupported data type");
927 template<
typename TArg>
928 struct Sin<SinUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
930 __host__ __device__
auto operator()(SinUniformCudaHipBuiltIn
const& , TArg
const&
arg)
932 if constexpr(is_decayed_v<TArg, float>)
934 else if constexpr(is_decayed_v<TArg, double>)
937 static_assert(!
sizeof(TArg),
"Unsupported data type");
944 template<
typename TArg>
945 struct Sinh<SinhUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
947 __host__ __device__
auto operator()(SinhUniformCudaHipBuiltIn
const& , TArg
const&
arg)
949 if constexpr(is_decayed_v<TArg, float>)
951 else if constexpr(is_decayed_v<TArg, double>)
954 static_assert(!
sizeof(TArg),
"Unsupported data type");
961 template<
typename TArg>
962 struct SinCos<SinCosUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
965 SinCosUniformCudaHipBuiltIn
const& ,
968 TArg& result_cos) ->
void
970 if constexpr(is_decayed_v<TArg, float>)
971 ::sincosf(
arg, &result_sin, &result_cos);
972 else if constexpr(is_decayed_v<TArg, double>)
975 static_assert(!
sizeof(TArg),
"Unsupported data type");
980 template<
typename TArg>
981 struct Sqrt<SqrtUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_arithmetic_v<TArg>>>
983 __host__ __device__
auto operator()(SqrtUniformCudaHipBuiltIn
const& , TArg
const&
arg)
985 if constexpr(is_decayed_v<TArg, float>)
987 else if constexpr(is_decayed_v<TArg, double> || std::is_integral_v<TArg>)
990 static_assert(!
sizeof(TArg),
"Unsupported data type");
997 template<
typename TArg>
998 struct Tan<TanUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
1000 __host__ __device__
auto operator()(TanUniformCudaHipBuiltIn
const& , TArg
const&
arg)
1002 if constexpr(is_decayed_v<TArg, float>)
1004 else if constexpr(is_decayed_v<TArg, double>)
1007 static_assert(!
sizeof(TArg),
"Unsupported data type");
1014 template<
typename TArg>
1015 struct Tanh<TanhUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
1017 __host__ __device__
auto operator()(TanhUniformCudaHipBuiltIn
const& , TArg
const&
arg)
1019 if constexpr(is_decayed_v<TArg, float>)
1020 return ::tanhf(
arg);
1021 else if constexpr(is_decayed_v<TArg, double>)
1024 static_assert(!
sizeof(TArg),
"Unsupported data type");
1031 template<
typename TArg>
1032 struct Trunc<TruncUniformCudaHipBuiltIn, TArg,
std::enable_if_t<std::is_floating_point_v<TArg>>>
1034 __host__ __device__
auto operator()(TruncUniformCudaHipBuiltIn
const& , TArg
const&
arg)
1036 if constexpr(is_decayed_v<TArg, float>)
1037 return ::truncf(
arg);
1038 else if constexpr(is_decayed_v<TArg, double>)
1039 return ::trunc(
arg);
1041 static_assert(!
sizeof(TArg),
"Unsupported data type");
#define ALPAKA_UNREACHABLE(...)
Before CUDA 11.5 nvcc is unable to correctly identify return statements in 'if constexpr' branches....
The CUDA built in remainder.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto max(T const &max_ctx, Tx const &x, Ty const &y)
Returns the larger of two arguments. NaNs are treated as missing data (between a NaN and a numeric va...
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto exp(T const &exp_ctx, TArg const &arg)
Computes the e (Euler's number, 2.7182818) raised to the given power arg.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto sincos(T const &sincos_ctx, TArg const &arg, TArg &result_sin, TArg &result_cos) -> void
Computes the sine and cosine (measured in radians).
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto min(T const &min_ctx, Tx const &x, Ty const &y)
Returns the smaller of two arguments. NaNs are treated as missing data (between a NaN and a numeric v...
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto atan2(T const &atan2_ctx, Ty const &y, Tx const &x)
Computes the arc tangent of y/x using the signs of arguments to determine the correct quadrant.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto arg(T const &arg_ctx, TArgument const &argument)
Computes the complex argument of the value.
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto operator()(T const &, TArgument const &argument)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, Ty const &y, Tx const &x)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TMag const &mag, TSgn const &sgn)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, Tx const &x, Ty const &y, Tz const &z)
ALPAKA_FN_HOST_ACC auto operator()(T const &, Tx const &x, Ty const &y)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, Tx const &x, Ty const &y)
ALPAKA_FN_HOST_ACC auto operator()(T const &, Tx const &x, Ty const &y)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TBase const &base, TExp const &exp)
ALPAKA_FN_HOST_ACC auto operator()(T const &, Tx const &x, Ty const &y)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg, TArg &result_sin, TArg &result_cos)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)
ALPAKA_FN_HOST_ACC auto operator()(T const &, TArg const &arg)