18namespace nda::tensor::device {
20 void set_synchronization(
bool do_sync)
noexcept;
21 bool get_synchronization() noexcept;
23 void permute(
float alpha,
const_tensor_view<
float> A, std::string_view idx_A, tensor_view<
float> B, std::string_view idx_B);
24 void permute(
double alpha,
const_tensor_view<
double> A, std::string_view idx_A, tensor_view<
double> B, std::string_view idx_B);
25 void permute(std::complex<
float> alpha,
const_tensor_view<std::complex<
float>> A, std::string_view idx_A, tensor_view<std::complex<
float>> B,
26 std::string_view idx_B);
27 void permute(std::complex<
double> alpha,
const_tensor_view<std::complex<
double>> A, std::string_view idx_A, tensor_view<std::complex<
double>> B,
28 std::string_view idx_B);
34 void elementwise_binary(std::complex<
float> alpha,
const_tensor_view<std::complex<
float>> A, std::string_view idx_A, std::complex<
float> gamma,
35 const_tensor_view<std::complex<
float>> C, std::string_view idx_C, tensor_view<std::complex<
float>> D,
37 void elementwise_binary(std::complex<
double> alpha,
const_tensor_view<std::complex<
double>> A, std::string_view idx_A, std::complex<
double> gamma,
38 const_tensor_view<std::complex<
double>> C, std::string_view idx_C, tensor_view<std::complex<
double>> D,
42 std::string_view idx_B,
float gamma,
const_tensor_view<
float> C, std::string_view idx_C, tensor_view<
float> D,
45 std::string_view idx_B,
double gamma,
const_tensor_view<
double> C, std::string_view idx_C, tensor_view<
double> D,
47 void elementwise_trinary(std::complex<
float> alpha,
const_tensor_view<std::complex<
float>> A, std::string_view idx_A, std::complex<
float> beta,
48 const_tensor_view<std::complex<
float>> B, std::string_view idx_B, std::complex<
float> gamma,
49 const_tensor_view<std::complex<
float>> C, std::string_view idx_C, tensor_view<std::complex<
float>> D,
51 void elementwise_trinary(std::complex<
double> alpha,
const_tensor_view<std::complex<
double>> A, std::string_view idx_A, std::complex<
double> beta,
52 const_tensor_view<std::complex<
double>> B, std::string_view idx_B, std::complex<
double> gamma,
53 const_tensor_view<std::complex<
double>> C, std::string_view idx_C, tensor_view<std::complex<
double>> D,
60 void reduce(std::complex<
float> alpha,
const_tensor_view<std::complex<
float>> A, std::string_view idx_A, std::complex<
float> beta,
61 const_tensor_view<std::complex<
float>> C, std::string_view idx_C, tensor_view<std::complex<
float>> D,
63 void reduce(std::complex<
double> alpha,
const_tensor_view<std::complex<
double>> A, std::string_view idx_A, std::complex<
double> beta,
64 const_tensor_view<std::complex<
double>> C, std::string_view idx_C, tensor_view<std::complex<
double>> D,
72 std::string_view idx_B, std::complex<
float> beta,
const_tensor_view<std::complex<
float>> C, std::string_view idx_C,
73 tensor_view<std::complex<
float>> D);
74 void contract(std::complex<
double> alpha,
const_tensor_view<std::complex<
double>> A, std::string_view idx_A,
75 const_tensor_view<std::complex<
double>> B, std::string_view idx_B, std::complex<
double> beta,
76 const_tensor_view<std::complex<
double>> C, std::string_view idx_C, tensor_view<std::complex<
double>> D);
binary_op
Binary operations for tensor operations.
tensor_view< const T > const_tensor_view
Alias for a tensor_view with const value type.