31#include "utils/type_dispatch.hpp"
34namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
55 using value_type =
typename std::disjunction<
56 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>,
double>,
57 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>,
float>,
58 dpctl_td_ns::TypeMapResultEntry<T, double>,
59 dpctl_td_ns::TypeMapResultEntry<T, float>,
60 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
72 using value_type =
typename std::disjunction<
73 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
74 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
75 dpctl_td_ns::TypeMapResultEntry<T, double>,
76 dpctl_td_ns::TypeMapResultEntry<T, float>,
77 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
89 using value_type =
typename std::disjunction<
90 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
91 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
92 dpctl_td_ns::TypeMapResultEntry<T, double>,
93 dpctl_td_ns::TypeMapResultEntry<T, float>,
94 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
106 using value_type =
typename std::disjunction<
107 dpctl_td_ns::BinaryTypeMapResultEntry<T,
108 std::complex<double>,
110 std::complex<double>,
111 std::complex<double>>,
112 dpctl_td_ns::BinaryTypeMapResultEntry<T,
116 std::complex<float>>,
117 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
118 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
119 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
131 using value_type =
typename std::disjunction<
132 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
133 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
134 dpctl_td_ns::TypeMapResultEntry<T, double>,
135 dpctl_td_ns::TypeMapResultEntry<T, float>,
136 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
148 using value_type =
typename std::disjunction<
149 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
150 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
151 dpctl_td_ns::TypeMapResultEntry<T, double>,
152 dpctl_td_ns::TypeMapResultEntry<T, float>,
153 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
165 using value_type =
typename std::disjunction<
166 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
167 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
168 dpctl_td_ns::TypeMapResultEntry<T, double>,
169 dpctl_td_ns::TypeMapResultEntry<T, float>,
170 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
182 using value_type =
typename std::disjunction<
183 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
184 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
185 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
197 using value_type =
typename std::disjunction<
198 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
199 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
200 dpctl_td_ns::TypeMapResultEntry<T, double>,
201 dpctl_td_ns::TypeMapResultEntry<T, float>,
202 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
214 using value_type =
typename std::disjunction<
215 dpctl_td_ns::TypeMapResultEntry<T, double>,
216 dpctl_td_ns::TypeMapResultEntry<T, float>,
217 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
229 using value_type =
typename std::disjunction<
230 dpctl_td_ns::TypeMapResultEntry<T, double>,
231 dpctl_td_ns::TypeMapResultEntry<T, float>,
232 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
244 using value_type =
typename std::disjunction<
245 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
246 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
247 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
259 using value_type =
typename std::disjunction<
260 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
261 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
262 dpctl_td_ns::TypeMapResultEntry<T, double>,
263 dpctl_td_ns::TypeMapResultEntry<T, float>,
264 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
276 using value_type =
typename std::disjunction<
277 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
278 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
279 dpctl_td_ns::TypeMapResultEntry<T, double>,
280 dpctl_td_ns::TypeMapResultEntry<T, float>,
281 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
293 using value_type =
typename std::disjunction<
294 dpctl_td_ns::BinaryTypeMapResultEntry<T,
295 std::complex<double>,
297 std::complex<double>,
298 std::complex<double>>,
299 dpctl_td_ns::BinaryTypeMapResultEntry<T,
303 std::complex<float>>,
304 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
305 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
306 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
318 using value_type =
typename std::disjunction<
319 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
320 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
321 dpctl_td_ns::TypeMapResultEntry<T, double>,
322 dpctl_td_ns::TypeMapResultEntry<T, float>,
323 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
335 using value_type =
typename std::disjunction<
336 dpctl_td_ns::TypeMapResultEntry<T, double>,
337 dpctl_td_ns::TypeMapResultEntry<T, float>,
338 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
350 using value_type =
typename std::disjunction<
351 dpctl_td_ns::TypeMapResultEntry<T, double>,
352 dpctl_td_ns::TypeMapResultEntry<T, float>,
353 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
365 using value_type =
typename std::disjunction<
366 dpctl_td_ns::TypeMapResultEntry<T, double>,
367 dpctl_td_ns::TypeMapResultEntry<T, float>,
368 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
380 using value_type =
typename std::disjunction<
381 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
382 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
383 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
395 using value_type =
typename std::disjunction<
396 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
397 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
398 dpctl_td_ns::TypeMapResultEntry<T, double>,
399 dpctl_td_ns::TypeMapResultEntry<T, float>,
400 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
412 using value_type =
typename std::disjunction<
413 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
414 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
415 dpctl_td_ns::TypeMapResultEntry<T, double>,
416 dpctl_td_ns::TypeMapResultEntry<T, float>,
417 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
429 using value_type =
typename std::disjunction<
430 dpctl_td_ns::TypeMapResultEntry<T, double>,
431 dpctl_td_ns::TypeMapResultEntry<T, float>,
432 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
444 using value_type =
typename std::disjunction<
445 dpctl_td_ns::TypeMapResultEntry<T, double>,
446 dpctl_td_ns::TypeMapResultEntry<T, float>,
447 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
459 using value_type =
typename std::disjunction<
460 dpctl_td_ns::BinaryTypeMapResultEntry<T,
461 std::complex<double>,
463 std::complex<double>,
464 std::complex<double>>,
465 dpctl_td_ns::BinaryTypeMapResultEntry<T,
469 std::complex<float>>,
470 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
471 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
472 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
484 using value_type =
typename std::disjunction<
485 dpctl_td_ns::BinaryTypeMapResultEntry<T,
486 std::complex<double>,
488 std::complex<double>,
489 std::complex<double>>,
490 dpctl_td_ns::BinaryTypeMapResultEntry<T,
494 std::complex<float>>,
495 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
496 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
497 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
509 using value_type =
typename std::disjunction<
510 dpctl_td_ns::TypeMapResultEntry<T, double>,
511 dpctl_td_ns::TypeMapResultEntry<T, float>,
512 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
524 using value_type =
typename std::disjunction<
525 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
526 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
527 dpctl_td_ns::TypeMapResultEntry<T, double>,
528 dpctl_td_ns::TypeMapResultEntry<T, float>,
529 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
541 using value_type =
typename std::disjunction<
542 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
543 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
544 dpctl_td_ns::TypeMapResultEntry<T, double>,
545 dpctl_td_ns::TypeMapResultEntry<T, float>,
546 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
558 using value_type =
typename std::disjunction<
559 dpctl_td_ns::TypeMapResultEntry<T, double>,
560 dpctl_td_ns::TypeMapResultEntry<T, float>,
561 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
573 using value_type =
typename std::disjunction<
574 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
575 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
576 dpctl_td_ns::TypeMapResultEntry<T, double>,
577 dpctl_td_ns::TypeMapResultEntry<T, float>,
578 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
590 using value_type =
typename std::disjunction<
591 dpctl_td_ns::BinaryTypeMapResultEntry<T,
592 std::complex<double>,
594 std::complex<double>,
595 std::complex<double>>,
596 dpctl_td_ns::BinaryTypeMapResultEntry<T,
600 std::complex<float>>,
601 dpctl_td_ns::BinaryTypeMapResultEntry<T, double, T, double, double>,
602 dpctl_td_ns::BinaryTypeMapResultEntry<T, float, T, float, float>,
603 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
615 using value_type =
typename std::disjunction<
616 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
617 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
618 dpctl_td_ns::TypeMapResultEntry<T, double>,
619 dpctl_td_ns::TypeMapResultEntry<T, float>,
620 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
632 using value_type =
typename std::disjunction<
633 dpctl_td_ns::TypeMapResultEntry<T, std::complex<double>>,
634 dpctl_td_ns::TypeMapResultEntry<T, std::complex<float>>,
635 dpctl_td_ns::TypeMapResultEntry<T, double>,
636 dpctl_td_ns::TypeMapResultEntry<T, float>,
637 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
649 using value_type =
typename std::disjunction<
650 dpctl_td_ns::TypeMapResultEntry<T, double>,
651 dpctl_td_ns::TypeMapResultEntry<T, float>,
652 dpctl_td_ns::DefaultResultEntry<void>>::result_type;
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...
A factory to define pairs of supported types for which MKL VM library provides support in oneapi::mkl...