Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
elementwise_conjugate.hpp
Go to the documentation of this file.
1#pragma once
2
11
12#include <cuda_runtime_api.h>
13
14#include <concepts>
15#include <cstddef>
16
17namespace uni20::linalg::detail::cuda_reference
18{
19
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>;
24
25void enqueue_elementwise_conjugate(uni20::cfloat* output, ElementwiseConjugatePlan32 const& plan, cudaStream_t stream,
26 int device);
27void enqueue_elementwise_conjugate(uni20::cfloat* output, ElementwiseConjugatePlan64 const& plan, cudaStream_t stream,
28 int device);
29void enqueue_elementwise_conjugate(uni20::cdouble* output, ElementwiseConjugatePlan32 const& plan, cudaStream_t stream,
30 int device);
31void enqueue_elementwise_conjugate(uni20::cdouble* output, ElementwiseConjugatePlan64 const& plan, cudaStream_t stream,
32 int device);
33
34template <class Scalar>
35inline constexpr bool supports_elementwise_conjugate =
36 std::same_as<Scalar, uni20::cfloat> || std::same_as<Scalar, uni20::cdouble>;
37
38} // namespace uni20::linalg::detail::cuda_reference
CUDA lowering for compact affine elementwise iteration plans.
complex< double > cdouble
Definition types.hpp:76
complex< float > cfloat
Definition types.hpp:75