12#include <cuda_runtime_api.h>
17namespace uni20::linalg::detail::cuda_reference
20inline constexpr std::size_t elementwise_conjugate_maximum_rank = 8;
21using ElementwiseConjugatePlan32 = StridedElementwisePlan32<1, elementwise_conjugate_maximum_rank>;
22using ElementwiseConjugatePlan64 = StridedElementwisePlan64<1, elementwise_conjugate_maximum_rank>;
23using LoweredElementwiseConjugatePlan = LoweredStridedElementwisePlan<1, elementwise_conjugate_maximum_rank>;
25void enqueue_elementwise_conjugate(
uni20::cfloat* output, ElementwiseConjugatePlan32
const& plan, cudaStream_t stream,
27void enqueue_elementwise_conjugate(
uni20::cfloat* output, ElementwiseConjugatePlan64
const& plan, cudaStream_t stream,
29void enqueue_elementwise_conjugate(
uni20::cdouble* output, ElementwiseConjugatePlan32
const& plan, cudaStream_t stream,
31void enqueue_elementwise_conjugate(
uni20::cdouble* output, ElementwiseConjugatePlan64
const& plan, cudaStream_t stream,
34template <
class Scalar>
35inline constexpr bool supports_elementwise_conjugate =
36 std::same_as<Scalar, uni20::cfloat> || std::same_as<Scalar, uni20::cdouble>;
CUDA lowering for compact affine elementwise iteration plans.
complex< double > cdouble
Definition types.hpp:76
complex< float > cfloat
Definition types.hpp:75