mkl-devel-dpcpp 2025.1.0__py2.py3-none-win_amd64.whl → 2025.3.0__py2.py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
  2. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
  3. mkl_devel_dpcpp-2025.3.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  4. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl_dll.lib +0 -0
  5. mkl_devel_dpcpp-2025.3.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  6. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
  7. mkl_devel_dpcpp-2025.3.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  8. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.3.0.dist-info}/METADATA +5 -4
  9. mkl_devel_dpcpp-2025.3.0.dist-info/RECORD +15 -0
  10. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -26
  11. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -42
  12. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +0 -880
  13. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/spec.hpp +0 -42
  14. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/types.hpp +0 -60
  15. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -42
  16. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +0 -1240
  17. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas.hpp +0 -34
  18. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dft/spec.hpp +0 -42
  19. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dft.hpp +0 -254
  20. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dfti.hpp +0 -22
  21. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/exceptions.hpp +0 -110
  22. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -67
  23. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -68
  24. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -177
  25. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -22
  26. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/export.hpp +0 -25
  27. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/concepts.hpp +0 -55
  28. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +0 -75
  29. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/lapack.hpp +0 -1096
  30. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +0 -107
  31. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/spec.hpp +0 -42
  32. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack.hpp +0 -24
  33. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -48
  34. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -89
  35. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +0 -463
  36. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -71
  37. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +0 -85
  38. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -43
  39. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -54
  40. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +0 -116
  41. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +0 -285
  42. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -270
  43. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/geometric_impl.hpp +0 -99
  44. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -105
  45. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -117
  46. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +0 -223
  47. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -118
  48. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +0 -266
  49. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -125
  50. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -385
  51. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -3668
  52. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -141
  53. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -552
  54. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -328
  55. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -58
  56. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -51
  57. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -287
  58. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +0 -183
  59. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +0 -700
  60. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -116
  61. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/engines.hpp +0 -187
  62. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -59
  63. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/types.hpp +0 -79
  64. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device.hpp +0 -29
  65. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/distributions.hpp +0 -1913
  66. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/engines.hpp +0 -788
  67. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/functions.hpp +0 -163
  68. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/spec.hpp +0 -42
  69. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng.hpp +0 -23
  70. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +0 -111
  71. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +0 -446
  72. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +0 -193
  73. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/spec.hpp +0 -42
  74. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas.hpp +0 -33
  75. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spec.hpp +0 -42
  76. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/stats/spec.hpp +0 -42
  77. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/stats.hpp +0 -357
  78. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/types.hpp +0 -321
  79. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/buffer.hpp +0 -3529
  80. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/decls.hpp +0 -280
  81. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +0 -81
  82. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +0 -1059
  83. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +0 -861
  84. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +0 -860
  85. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +0 -860
  86. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +0 -4608
  87. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +0 -8963
  88. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/vm.hpp +0 -460
  89. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/span.hpp +0 -3813
  90. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/spec.hpp +0 -42
  91. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/usm.hpp +0 -3581
  92. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm.hpp +0 -31
  93. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl.hpp +0 -35
  94. mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  95. mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  96. mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  97. mkl_devel_dpcpp-2025.1.0.dist-info/RECORD +0 -99
  98. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
  99. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
  100. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.3.0.data}/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
  101. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.3.0.dist-info}/LICENSE.txt +0 -0
  102. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.3.0.dist-info}/WHEEL +0 -0
  103. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.3.0.dist-info}/top_level.txt +0 -0
@@ -1,1059 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (C) 2019 Intel Corporation
3
- *
4
- * This software and the related documents are Intel copyrighted materials, and
5
- * your use of them is governed by the express license under which they were
6
- * provided to you (License). Unless the License provides otherwise, you may not
7
- * use, modify, copy, publish, distribute, disclose or transmit this software or
8
- * the related documents without Intel's prior written permission.
9
- *
10
- * This software and the related documents are provided as is, with no express
11
- * or implied warranties, other than those that are expressly stated in the
12
- * License.
13
- *******************************************************************************/
14
-
15
- #ifndef ONEAPI_MKL_VM_DEVICE_VM_DETAIL_DISPATCH_HPP
16
- #define ONEAPI_MKL_VM_DEVICE_VM_DETAIL_DISPATCH_HPP 1
17
-
18
- #include "oneapi/mkl/vm/device/detail/decls.hpp"
19
-
20
- #include "oneapi/mkl/vm/device/detail/scalar.hpp"
21
-
22
-
23
- namespace oneapi::mkl::vm::device::detail {
24
-
25
- template <Function f, typename Tin, typename Tout, Accuracy acc, Feature fea,
26
- typename = void>
27
- constexpr bool Exists{false};
28
-
29
- template <Function f, typename Tin, typename Tout, Accuracy acc, Feature fea>
30
- constexpr bool Exists<
31
- f, Tin, Tout, acc, fea,
32
- std::void_t<decltype(
33
- std::declval<Evaluator<f, Tin, Tout, acc, fea>>().operator()())>> =
34
- true;
35
-
36
- using AccFeaT = std::pair<Accuracy, Feature>;
37
-
38
- constexpr bool operator>=(enum Accuracy lhs, enum Accuracy rhs) {
39
- if (Accuracy::kCR == lhs && Accuracy::kCR == rhs) { return true; }
40
-
41
- if (Accuracy::kCR == lhs && Accuracy::kHA == rhs) { return true; }
42
- if (Accuracy::kHA == lhs && Accuracy::kHA == rhs) { return true; }
43
- if (Accuracy::kNS == lhs && Accuracy::kHA == rhs) { return true; }
44
-
45
- // NS defaults to HA
46
- if (Accuracy::kCR == lhs && Accuracy::kNS == rhs) { return true; }
47
- if (Accuracy::kHA == lhs && Accuracy::kNS == rhs) { return true; }
48
- if (Accuracy::kNS == lhs && Accuracy::kNS == rhs) { return true; }
49
-
50
- if (Accuracy::kCR == lhs && Accuracy::kLA == rhs) { return true; }
51
- if (Accuracy::kHA == lhs && Accuracy::kLA == rhs) { return true; }
52
- if (Accuracy::kLA == lhs && Accuracy::kLA == rhs) { return true; }
53
-
54
- if (Accuracy::kCR == lhs && Accuracy::kEP == rhs) { return true; }
55
- if (Accuracy::kHA == lhs && Accuracy::kEP == rhs) { return true; }
56
- if (Accuracy::kLA == lhs && Accuracy::kEP == rhs) { return true; }
57
- if (Accuracy::kEP == lhs && Accuracy::kEP == rhs) { return true; }
58
-
59
- return false;
60
- }
61
-
62
- using AccFeaT = std::pair<Accuracy, Feature>;
63
-
64
- template <Function Func, typename Tin, typename Tout,
65
- Accuracy Acc = Accuracy::kNS, Feature Fea = Feature::kNS>
66
- struct CompileTimeSelector {
67
- static constexpr auto result = []() -> AccFeaT {
68
- if constexpr (Exists<Func, Tin, Tout, Acc, Fea>) {
69
- return AccFeaT{Acc, Fea};
70
- }
71
-
72
- if constexpr (Acc == Accuracy::kCR &&
73
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kTA>) {
74
- return AccFeaT{Accuracy::kCR, Feature::kTA};
75
- }
76
- if constexpr (Acc == Accuracy::kCR &&
77
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kGE>) {
78
- return AccFeaT{Accuracy::kCR, Feature::kGE};
79
- }
80
- if constexpr (Acc == Accuracy::kCR &&
81
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kSO>) {
82
- return AccFeaT{Accuracy::kCR, Feature::kSO};
83
- }
84
- if constexpr (Acc == Accuracy::kCR &&
85
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kDR>) {
86
- return AccFeaT{Accuracy::kCR, Feature::kDR};
87
- }
88
-
89
- if constexpr (Acc == Accuracy::kHA &&
90
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kTA>) {
91
- return AccFeaT{Accuracy::kHA, Feature::kTA};
92
- }
93
- if constexpr (Acc == Accuracy::kHA &&
94
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kGE>) {
95
- return AccFeaT{Accuracy::kHA, Feature::kGE};
96
- }
97
- if constexpr (Acc == Accuracy::kHA &&
98
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kSO>) {
99
- return AccFeaT{Accuracy::kHA, Feature::kSO};
100
- }
101
- if constexpr (Acc == Accuracy::kHA &&
102
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kDR>) {
103
- return AccFeaT{Accuracy::kHA, Feature::kDR};
104
- }
105
- if constexpr (Acc == Accuracy::kHA &&
106
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kTA>) {
107
- return AccFeaT{Accuracy::kCR, Feature::kTA};
108
- }
109
- if constexpr (Acc == Accuracy::kHA &&
110
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kGE>) {
111
- return AccFeaT{Accuracy::kCR, Feature::kGE};
112
- }
113
- if constexpr (Acc == Accuracy::kHA &&
114
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kSO>) {
115
- return AccFeaT{Accuracy::kCR, Feature::kSO};
116
- }
117
- if constexpr (Acc == Accuracy::kHA &&
118
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kDR>) {
119
- return AccFeaT{Accuracy::kCR, Feature::kDR};
120
- }
121
-
122
- if constexpr (Acc == Accuracy::kLA &&
123
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kTA>) {
124
- return AccFeaT{Accuracy::kLA, Feature::kTA};
125
- }
126
- if constexpr (Acc == Accuracy::kLA &&
127
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kGE>) {
128
- return AccFeaT{Accuracy::kLA, Feature::kGE};
129
- }
130
- if constexpr (Acc == Accuracy::kLA &&
131
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kSO>) {
132
- return AccFeaT{Accuracy::kLA, Feature::kSO};
133
- }
134
- if constexpr (Acc == Accuracy::kLA &&
135
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kDR>) {
136
- return AccFeaT{Accuracy::kLA, Feature::kDR};
137
- }
138
- if constexpr (Acc == Accuracy::kLA &&
139
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kTA>) {
140
- return AccFeaT{Accuracy::kHA, Feature::kTA};
141
- }
142
- if constexpr (Acc == Accuracy::kLA &&
143
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kGE>) {
144
- return AccFeaT{Accuracy::kHA, Feature::kGE};
145
- }
146
- if constexpr (Acc == Accuracy::kLA &&
147
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kSO>) {
148
- return AccFeaT{Accuracy::kHA, Feature::kSO};
149
- }
150
- if constexpr (Acc == Accuracy::kLA &&
151
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kDR>) {
152
- return AccFeaT{Accuracy::kHA, Feature::kDR};
153
- }
154
- if constexpr (Acc == Accuracy::kLA &&
155
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kTA>) {
156
- return AccFeaT{Accuracy::kCR, Feature::kTA};
157
- }
158
- if constexpr (Acc == Accuracy::kLA &&
159
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kGE>) {
160
- return AccFeaT{Accuracy::kCR, Feature::kGE};
161
- }
162
- if constexpr (Acc == Accuracy::kLA &&
163
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kSO>) {
164
- return AccFeaT{Accuracy::kCR, Feature::kSO};
165
- }
166
- if constexpr (Acc == Accuracy::kLA &&
167
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kDR>) {
168
- return AccFeaT{Accuracy::kCR, Feature::kDR};
169
- }
170
-
171
- if constexpr (Acc == Accuracy::kEP &&
172
- Exists<Func, Tin, Tout, Accuracy::kEP, Feature::kTA>) {
173
- return AccFeaT{Accuracy::kEP, Feature::kTA};
174
- }
175
- if constexpr (Acc == Accuracy::kEP &&
176
- Exists<Func, Tin, Tout, Accuracy::kEP, Feature::kGE>) {
177
- return AccFeaT{Accuracy::kEP, Feature::kGE};
178
- }
179
- if constexpr (Acc == Accuracy::kEP &&
180
- Exists<Func, Tin, Tout, Accuracy::kEP, Feature::kSO>) {
181
- return AccFeaT{Accuracy::kEP, Feature::kSO};
182
- }
183
- if constexpr (Acc == Accuracy::kEP &&
184
- Exists<Func, Tin, Tout, Accuracy::kEP, Feature::kDR>) {
185
- return AccFeaT{Accuracy::kEP, Feature::kDR};
186
- }
187
- if constexpr (Acc == Accuracy::kEP &&
188
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kTA>) {
189
- return AccFeaT{Accuracy::kLA, Feature::kTA};
190
- }
191
- if constexpr (Acc == Accuracy::kEP &&
192
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kGE>) {
193
- return AccFeaT{Accuracy::kLA, Feature::kGE};
194
- }
195
- if constexpr (Acc == Accuracy::kEP &&
196
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kSO>) {
197
- return AccFeaT{Accuracy::kLA, Feature::kSO};
198
- }
199
- if constexpr (Acc == Accuracy::kEP &&
200
- Exists<Func, Tin, Tout, Accuracy::kLA, Feature::kDR>) {
201
- return AccFeaT{Accuracy::kLA, Feature::kDR};
202
- }
203
- if constexpr (Acc == Accuracy::kEP &&
204
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kTA>) {
205
- return AccFeaT{Accuracy::kHA, Feature::kTA};
206
- }
207
- if constexpr (Acc == Accuracy::kEP &&
208
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kGE>) {
209
- return AccFeaT{Accuracy::kHA, Feature::kGE};
210
- }
211
- if constexpr (Acc == Accuracy::kEP &&
212
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kSO>) {
213
- return AccFeaT{Accuracy::kHA, Feature::kSO};
214
- }
215
- if constexpr (Acc == Accuracy::kEP &&
216
- Exists<Func, Tin, Tout, Accuracy::kHA, Feature::kDR>) {
217
- return AccFeaT{Accuracy::kHA, Feature::kDR};
218
- }
219
- if constexpr (Acc == Accuracy::kEP &&
220
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kTA>) {
221
- return AccFeaT{Accuracy::kCR, Feature::kTA};
222
- }
223
- if constexpr (Acc == Accuracy::kEP &&
224
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kGE>) {
225
- return AccFeaT{Accuracy::kCR, Feature::kGE};
226
- }
227
- if constexpr (Acc == Accuracy::kEP &&
228
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kSO>) {
229
- return AccFeaT{Accuracy::kCR, Feature::kSO};
230
- }
231
- if constexpr (Acc == Accuracy::kEP &&
232
- Exists<Func, Tin, Tout, Accuracy::kCR, Feature::kDR>) {
233
- return AccFeaT{Accuracy::kCR, Feature::kDR};
234
- }
235
-
236
- return AccFeaT{Accuracy::kNA, Feature::kNA};
237
- }();
238
- };
239
-
240
- template <Function Func, typename Tin, typename Tout,
241
- Accuracy Acc = Accuracy::kNS, Feature Fea = Feature::kNS>
242
- constexpr bool ExistsAtAll =
243
- CompileTimeSelector<Func, Tin, Tout, Acc, Fea>::result.first !=
244
- Accuracy::kNA&& CompileTimeSelector<Func, Tin, Tout, Acc, Fea>::result
245
- .second != Feature::kNA;
246
-
247
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
248
- typename std::enable_if<ExistsAtAll<Function::kAbs, Tin, Tout, Acc::a>,
249
- oneapi::mkl::vm::status>::type
250
- abs(const Tin* a, Tout* y, Acc const& acc = {}) {
251
- constexpr auto cts =
252
- CompileTimeSelector<Function::kAbs, Tin, Tout, Acc::a>::result;
253
- Evaluator<Function::kAbs, Tin, Tout, cts.first, cts.second> EV;
254
- return EV(a, y);
255
- }
256
-
257
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
258
- typename std::enable_if<ExistsAtAll<Function::kAcos, Tin, Tout, Acc::a>,
259
- oneapi::mkl::vm::status>::type
260
- acos(const Tin* a, Tout* y, Acc const& acc = {}) {
261
- constexpr auto cts =
262
- CompileTimeSelector<Function::kAcos, Tin, Tout, Acc::a>::result;
263
- Evaluator<Function::kAcos, Tin, Tout, cts.first, cts.second> EV;
264
- return EV(a, y);
265
- }
266
-
267
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
268
- typename std::enable_if<ExistsAtAll<Function::kAcosh, Tin, Tout, Acc::a>,
269
- oneapi::mkl::vm::status>::type
270
- acosh(const Tin* a, Tout* y, Acc const& acc = {}) {
271
- constexpr auto cts =
272
- CompileTimeSelector<Function::kAcosh, Tin, Tout, Acc::a>::result;
273
- Evaluator<Function::kAcosh, Tin, Tout, cts.first, cts.second> EV;
274
- return EV(a, y);
275
- }
276
-
277
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
278
- typename std::enable_if<ExistsAtAll<Function::kAcospi, Tin, Tout, Acc::a>,
279
- oneapi::mkl::vm::status>::type
280
- acospi(const Tin* a, Tout* y, Acc const& acc = {}) {
281
- constexpr auto cts =
282
- CompileTimeSelector<Function::kAcospi, Tin, Tout, Acc::a>::result;
283
- Evaluator<Function::kAcospi, Tin, Tout, cts.first, cts.second> EV;
284
- return EV(a, y);
285
- }
286
-
287
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
288
- typename std::enable_if<ExistsAtAll<Function::kAdd, Tin, Tout, Acc::a>,
289
- oneapi::mkl::vm::status>::type
290
- add(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
291
- constexpr auto cts =
292
- CompileTimeSelector<Function::kAdd, Tin, Tout, Acc::a>::result;
293
- Evaluator<Function::kAdd, Tin, Tout, cts.first, cts.second> EV;
294
- return EV(a, b, y);
295
- }
296
-
297
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
298
- typename std::enable_if<ExistsAtAll<Function::kArg, Tin, Tout, Acc::a>,
299
- oneapi::mkl::vm::status>::type
300
- arg(const Tin* a, Tout* y, Acc const& acc = {}) {
301
- constexpr auto cts =
302
- CompileTimeSelector<Function::kArg, Tin, Tout, Acc::a>::result;
303
- Evaluator<Function::kArg, Tin, Tout, cts.first, cts.second> EV;
304
- return EV(a, y);
305
- }
306
-
307
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
308
- typename std::enable_if<ExistsAtAll<Function::kAsin, Tin, Tout, Acc::a>,
309
- oneapi::mkl::vm::status>::type
310
- asin(const Tin* a, Tout* y, Acc const& acc = {}) {
311
- constexpr auto cts =
312
- CompileTimeSelector<Function::kAsin, Tin, Tout, Acc::a>::result;
313
- Evaluator<Function::kAsin, Tin, Tout, cts.first, cts.second> EV;
314
- return EV(a, y);
315
- }
316
-
317
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
318
- typename std::enable_if<ExistsAtAll<Function::kAsinh, Tin, Tout, Acc::a>,
319
- oneapi::mkl::vm::status>::type
320
- asinh(const Tin* a, Tout* y, Acc const& acc = {}) {
321
- constexpr auto cts =
322
- CompileTimeSelector<Function::kAsinh, Tin, Tout, Acc::a>::result;
323
- Evaluator<Function::kAsinh, Tin, Tout, cts.first, cts.second> EV;
324
- return EV(a, y);
325
- }
326
-
327
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
328
- typename std::enable_if<ExistsAtAll<Function::kAsinpi, Tin, Tout, Acc::a>,
329
- oneapi::mkl::vm::status>::type
330
- asinpi(const Tin* a, Tout* y, Acc const& acc = {}) {
331
- constexpr auto cts =
332
- CompileTimeSelector<Function::kAsinpi, Tin, Tout, Acc::a>::result;
333
- Evaluator<Function::kAsinpi, Tin, Tout, cts.first, cts.second> EV;
334
- return EV(a, y);
335
- }
336
-
337
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
338
- typename std::enable_if<ExistsAtAll<Function::kAtan, Tin, Tout, Acc::a>,
339
- oneapi::mkl::vm::status>::type
340
- atan(const Tin* a, Tout* y, Acc const& acc = {}) {
341
- constexpr auto cts =
342
- CompileTimeSelector<Function::kAtan, Tin, Tout, Acc::a>::result;
343
- Evaluator<Function::kAtan, Tin, Tout, cts.first, cts.second> EV;
344
- return EV(a, y);
345
- }
346
-
347
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
348
- typename std::enable_if<ExistsAtAll<Function::kAtan2, Tin, Tout, Acc::a>,
349
- oneapi::mkl::vm::status>::type
350
- atan2(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
351
- constexpr auto cts =
352
- CompileTimeSelector<Function::kAtan2, Tin, Tout, Acc::a>::result;
353
- Evaluator<Function::kAtan2, Tin, Tout, cts.first, cts.second> EV;
354
- return EV(a, b, y);
355
- }
356
-
357
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
358
- typename std::enable_if<ExistsAtAll<Function::kAtan2pi, Tin, Tout, Acc::a>,
359
- oneapi::mkl::vm::status>::type
360
- atan2pi(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
361
- constexpr auto cts =
362
- CompileTimeSelector<Function::kAtan2pi, Tin, Tout, Acc::a>::result;
363
- Evaluator<Function::kAtan2pi, Tin, Tout, cts.first, cts.second> EV;
364
- return EV(a, b, y);
365
- }
366
-
367
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
368
- typename std::enable_if<ExistsAtAll<Function::kAtanh, Tin, Tout, Acc::a>,
369
- oneapi::mkl::vm::status>::type
370
- atanh(const Tin* a, Tout* y, Acc const& acc = {}) {
371
- constexpr auto cts =
372
- CompileTimeSelector<Function::kAtanh, Tin, Tout, Acc::a>::result;
373
- Evaluator<Function::kAtanh, Tin, Tout, cts.first, cts.second> EV;
374
- return EV(a, y);
375
- }
376
-
377
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
378
- typename std::enable_if<ExistsAtAll<Function::kAtanpi, Tin, Tout, Acc::a>,
379
- oneapi::mkl::vm::status>::type
380
- atanpi(const Tin* a, Tout* y, Acc const& acc = {}) {
381
- constexpr auto cts =
382
- CompileTimeSelector<Function::kAtanpi, Tin, Tout, Acc::a>::result;
383
- Evaluator<Function::kAtanpi, Tin, Tout, cts.first, cts.second> EV;
384
- return EV(a, y);
385
- }
386
-
387
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
388
- typename std::enable_if<ExistsAtAll<Function::kCbrt, Tin, Tout, Acc::a>,
389
- oneapi::mkl::vm::status>::type
390
- cbrt(const Tin* a, Tout* y, Acc const& acc = {}) {
391
- constexpr auto cts =
392
- CompileTimeSelector<Function::kCbrt, Tin, Tout, Acc::a>::result;
393
- Evaluator<Function::kCbrt, Tin, Tout, cts.first, cts.second> EV;
394
- return EV(a, y);
395
- }
396
-
397
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
398
- typename std::enable_if<ExistsAtAll<Function::kCdfnorm, Tin, Tout, Acc::a>,
399
- oneapi::mkl::vm::status>::type
400
- cdfnorm(const Tin* a, Tout* y, Acc const& acc = {}) {
401
- constexpr auto cts =
402
- CompileTimeSelector<Function::kCdfnorm, Tin, Tout, Acc::a>::result;
403
- Evaluator<Function::kCdfnorm, Tin, Tout, cts.first, cts.second> EV;
404
- return EV(a, y);
405
- }
406
-
407
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
408
- typename std::enable_if<ExistsAtAll<Function::kCdfnorminv, Tin, Tout, Acc::a>,
409
- oneapi::mkl::vm::status>::type
410
- cdfnorminv(const Tin* a, Tout* y, Acc const& acc = {}) {
411
- constexpr auto cts =
412
- CompileTimeSelector<Function::kCdfnorminv, Tin, Tout, Acc::a>::result;
413
- Evaluator<Function::kCdfnorminv, Tin, Tout, cts.first, cts.second> EV;
414
- return EV(a, y);
415
- }
416
-
417
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
418
- typename std::enable_if<ExistsAtAll<Function::kCeil, Tin, Tout, Acc::a>,
419
- oneapi::mkl::vm::status>::type
420
- ceil(const Tin* a, Tout* y, Acc const& acc = {}) {
421
- constexpr auto cts =
422
- CompileTimeSelector<Function::kCeil, Tin, Tout, Acc::a>::result;
423
- Evaluator<Function::kCeil, Tin, Tout, cts.first, cts.second> EV;
424
- return EV(a, y);
425
- }
426
-
427
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
428
- typename std::enable_if<ExistsAtAll<Function::kCis, Tin, Tout, Acc::a>,
429
- oneapi::mkl::vm::status>::type
430
- cis(const Tin* a, Tout* y, Acc const& acc = {}) {
431
- constexpr auto cts =
432
- CompileTimeSelector<Function::kCis, Tin, Tout, Acc::a>::result;
433
- Evaluator<Function::kCis, Tin, Tout, cts.first, cts.second> EV;
434
- return EV(a, y);
435
- }
436
-
437
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
438
- typename std::enable_if<ExistsAtAll<Function::kConj, Tin, Tout, Acc::a>,
439
- oneapi::mkl::vm::status>::type
440
- conj(const Tin* a, Tout* y, Acc const& acc = {}) {
441
- constexpr auto cts =
442
- CompileTimeSelector<Function::kConj, Tin, Tout, Acc::a>::result;
443
- Evaluator<Function::kConj, Tin, Tout, cts.first, cts.second> EV;
444
- return EV(a, y);
445
- }
446
-
447
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
448
- typename std::enable_if<ExistsAtAll<Function::kCopysign, Tin, Tout, Acc::a>,
449
- oneapi::mkl::vm::status>::type
450
- copysign(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
451
- constexpr auto cts =
452
- CompileTimeSelector<Function::kCopysign, Tin, Tout, Acc::a>::result;
453
- Evaluator<Function::kCopysign, Tin, Tout, cts.first, cts.second> EV;
454
- return EV(a, b, y);
455
- }
456
-
457
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
458
- typename std::enable_if<ExistsAtAll<Function::kCos, Tin, Tout, Acc::a>,
459
- oneapi::mkl::vm::status>::type
460
- cos(const Tin* a, Tout* y, Acc const& acc = {}) {
461
- constexpr auto cts =
462
- CompileTimeSelector<Function::kCos, Tin, Tout, Acc::a>::result;
463
- Evaluator<Function::kCos, Tin, Tout, cts.first, cts.second> EV;
464
- return EV(a, y);
465
- }
466
-
467
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
468
- typename std::enable_if<ExistsAtAll<Function::kCosd, Tin, Tout, Acc::a>,
469
- oneapi::mkl::vm::status>::type
470
- cosd(const Tin* a, Tout* y, Acc const& acc = {}) {
471
- constexpr auto cts =
472
- CompileTimeSelector<Function::kCosd, Tin, Tout, Acc::a>::result;
473
- Evaluator<Function::kCosd, Tin, Tout, cts.first, cts.second> EV;
474
- return EV(a, y);
475
- }
476
-
477
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
478
- typename std::enable_if<ExistsAtAll<Function::kCosh, Tin, Tout, Acc::a>,
479
- oneapi::mkl::vm::status>::type
480
- cosh(const Tin* a, Tout* y, Acc const& acc = {}) {
481
- constexpr auto cts =
482
- CompileTimeSelector<Function::kCosh, Tin, Tout, Acc::a>::result;
483
- Evaluator<Function::kCosh, Tin, Tout, cts.first, cts.second> EV;
484
- return EV(a, y);
485
- }
486
-
487
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
488
- typename std::enable_if<ExistsAtAll<Function::kCospi, Tin, Tout, Acc::a>,
489
- oneapi::mkl::vm::status>::type
490
- cospi(const Tin* a, Tout* y, Acc const& acc = {}) {
491
- constexpr auto cts =
492
- CompileTimeSelector<Function::kCospi, Tin, Tout, Acc::a>::result;
493
- Evaluator<Function::kCospi, Tin, Tout, cts.first, cts.second> EV;
494
- return EV(a, y);
495
- }
496
-
497
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
498
- typename std::enable_if<ExistsAtAll<Function::kDiv, Tin, Tout, Acc::a>,
499
- oneapi::mkl::vm::status>::type
500
- div(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
501
- constexpr auto cts =
502
- CompileTimeSelector<Function::kDiv, Tin, Tout, Acc::a>::result;
503
- Evaluator<Function::kDiv, Tin, Tout, cts.first, cts.second> EV;
504
- return EV(a, b, y);
505
- }
506
-
507
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
508
- typename std::enable_if<ExistsAtAll<Function::kErf, Tin, Tout, Acc::a>,
509
- oneapi::mkl::vm::status>::type
510
- erf(const Tin* a, Tout* y, Acc const& acc = {}) {
511
- constexpr auto cts =
512
- CompileTimeSelector<Function::kErf, Tin, Tout, Acc::a>::result;
513
- Evaluator<Function::kErf, Tin, Tout, cts.first, cts.second> EV;
514
- return EV(a, y);
515
- }
516
-
517
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
518
- typename std::enable_if<ExistsAtAll<Function::kErfc, Tin, Tout, Acc::a>,
519
- oneapi::mkl::vm::status>::type
520
- erfc(const Tin* a, Tout* y, Acc const& acc = {}) {
521
- constexpr auto cts =
522
- CompileTimeSelector<Function::kErfc, Tin, Tout, Acc::a>::result;
523
- Evaluator<Function::kErfc, Tin, Tout, cts.first, cts.second> EV;
524
- return EV(a, y);
525
- }
526
-
527
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
528
- typename std::enable_if<ExistsAtAll<Function::kErfc, Tin, Tout, Acc::a>,
529
- oneapi::mkl::vm::status>::type
530
- erfcx(const Tin* a, Tout* y, Acc const& acc = {}) {
531
- constexpr auto cts =
532
- CompileTimeSelector<Function::kErfc, Tin, Tout, Acc::a>::result;
533
- Evaluator<Function::kErfc, Tin, Tout, cts.first, cts.second> EV;
534
- return EV(a, y);
535
- }
536
-
537
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
538
- typename std::enable_if<ExistsAtAll<Function::kErfcinv, Tin, Tout, Acc::a>,
539
- oneapi::mkl::vm::status>::type
540
- erfcinv(const Tin* a, Tout* y, Acc const& acc = {}) {
541
- constexpr auto cts =
542
- CompileTimeSelector<Function::kErfcinv, Tin, Tout, Acc::a>::result;
543
- Evaluator<Function::kErfcinv, Tin, Tout, cts.first, cts.second> EV;
544
- return EV(a, y);
545
- }
546
-
547
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
548
- typename std::enable_if<ExistsAtAll<Function::kErfinv, Tin, Tout, Acc::a>,
549
- oneapi::mkl::vm::status>::type
550
- erfinv(const Tin* a, Tout* y, Acc const& acc = {}) {
551
- constexpr auto cts =
552
- CompileTimeSelector<Function::kErfinv, Tin, Tout, Acc::a>::result;
553
- Evaluator<Function::kErfinv, Tin, Tout, cts.first, cts.second> EV;
554
- return EV(a, y);
555
- }
556
-
557
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
558
- typename std::enable_if<ExistsAtAll<Function::kExp, Tin, Tout, Acc::a>,
559
- oneapi::mkl::vm::status>::type
560
- exp(const Tin* a, Tout* y, Acc const& acc = {}) {
561
- constexpr auto cts =
562
- CompileTimeSelector<Function::kExp, Tin, Tout, Acc::a>::result;
563
- Evaluator<Function::kExp, Tin, Tout, cts.first, cts.second> EV;
564
- return EV(a, y);
565
- }
566
-
567
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
568
- typename std::enable_if<ExistsAtAll<Function::kExp10, Tin, Tout, Acc::a>,
569
- oneapi::mkl::vm::status>::type
570
- exp10(const Tin* a, Tout* y, Acc const& acc = {}) {
571
- constexpr auto cts =
572
- CompileTimeSelector<Function::kExp10, Tin, Tout, Acc::a>::result;
573
- Evaluator<Function::kExp10, Tin, Tout, cts.first, cts.second> EV;
574
- return EV(a, y);
575
- }
576
-
577
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
578
- typename std::enable_if<ExistsAtAll<Function::kExp2, Tin, Tout, Acc::a>,
579
- oneapi::mkl::vm::status>::type
580
- exp2(const Tin* a, Tout* y, Acc const& acc = {}) {
581
- constexpr auto cts =
582
- CompileTimeSelector<Function::kExp2, Tin, Tout, Acc::a>::result;
583
- Evaluator<Function::kExp2, Tin, Tout, cts.first, cts.second> EV;
584
- return EV(a, y);
585
- }
586
-
587
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
588
- typename std::enable_if<ExistsAtAll<Function::kExpm1, Tin, Tout, Acc::a>,
589
- oneapi::mkl::vm::status>::type
590
- expm1(const Tin* a, Tout* y, Acc const& acc = {}) {
591
- constexpr auto cts =
592
- CompileTimeSelector<Function::kExpm1, Tin, Tout, Acc::a>::result;
593
- Evaluator<Function::kExpm1, Tin, Tout, cts.first, cts.second> EV;
594
- return EV(a, y);
595
- }
596
-
597
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
598
- typename std::enable_if<ExistsAtAll<Function::kFdim, Tin, Tout, Acc::a>,
599
- oneapi::mkl::vm::status>::type
600
- fdim(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
601
- constexpr auto cts =
602
- CompileTimeSelector<Function::kFdim, Tin, Tout, Acc::a>::result;
603
- Evaluator<Function::kFdim, Tin, Tout, cts.first, cts.second> EV;
604
- return EV(a, b, y);
605
- }
606
-
607
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
608
- typename std::enable_if<ExistsAtAll<Function::kFloor, Tin, Tout, Acc::a>,
609
- oneapi::mkl::vm::status>::type
610
- floor(const Tin* a, Tout* y, Acc const& acc = {}) {
611
- constexpr auto cts =
612
- CompileTimeSelector<Function::kFloor, Tin, Tout, Acc::a>::result;
613
- Evaluator<Function::kFloor, Tin, Tout, cts.first, cts.second> EV;
614
- return EV(a, y);
615
- }
616
-
617
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
618
- typename std::enable_if<ExistsAtAll<Function::kFmax, Tin, Tout, Acc::a>,
619
- oneapi::mkl::vm::status>::type
620
- fmax(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
621
- constexpr auto cts =
622
- CompileTimeSelector<Function::kFmax, Tin, Tout, Acc::a>::result;
623
- Evaluator<Function::kFmax, Tin, Tout, cts.first, cts.second> EV;
624
- return EV(a, b, y);
625
- }
626
-
627
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
628
- typename std::enable_if<ExistsAtAll<Function::kFmin, Tin, Tout, Acc::a>,
629
- oneapi::mkl::vm::status>::type
630
- fmin(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
631
- constexpr auto cts =
632
- CompileTimeSelector<Function::kFmin, Tin, Tout, Acc::a>::result;
633
- Evaluator<Function::kFmin, Tin, Tout, cts.first, cts.second> EV;
634
- return EV(a, b, y);
635
- }
636
-
637
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
638
- typename std::enable_if<ExistsAtAll<Function::kFmod, Tin, Tout, Acc::a>,
639
- oneapi::mkl::vm::status>::type
640
- fmod(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
641
- constexpr auto cts =
642
- CompileTimeSelector<Function::kFmod, Tin, Tout, Acc::a>::result;
643
- Evaluator<Function::kFmod, Tin, Tout, cts.first, cts.second> EV;
644
- return EV(a, b, y);
645
- }
646
-
647
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
648
- typename std::enable_if<ExistsAtAll<Function::kFrac, Tin, Tout, Acc::a>,
649
- oneapi::mkl::vm::status>::type
650
- frac(const Tin* a, Tout* y, Acc const& acc = {}) {
651
- constexpr auto cts =
652
- CompileTimeSelector<Function::kFrac, Tin, Tout, Acc::a>::result;
653
- Evaluator<Function::kFrac, Tin, Tout, cts.first, cts.second> EV;
654
- return EV(a, y);
655
- }
656
-
657
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
658
- typename std::enable_if<ExistsAtAll<Function::kHypot, Tin, Tout, Acc::a>,
659
- oneapi::mkl::vm::status>::type
660
- hypot(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
661
- constexpr auto cts =
662
- CompileTimeSelector<Function::kHypot, Tin, Tout, Acc::a>::result;
663
- Evaluator<Function::kHypot, Tin, Tout, cts.first, cts.second> EV;
664
- return EV(a, b, y);
665
- }
666
-
667
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
668
- typename std::enable_if<ExistsAtAll<Function::kInv, Tin, Tout, Acc::a>,
669
- oneapi::mkl::vm::status>::type
670
- inv(const Tin* a, Tout* y, Acc const& acc = {}) {
671
- constexpr auto cts =
672
- CompileTimeSelector<Function::kInv, Tin, Tout, Acc::a>::result;
673
- Evaluator<Function::kInv, Tin, Tout, cts.first, cts.second> EV;
674
- return EV(a, y);
675
- }
676
-
677
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
678
- typename std::enable_if<ExistsAtAll<Function::kInvcbrt, Tin, Tout, Acc::a>,
679
- oneapi::mkl::vm::status>::type
680
- invcbrt(const Tin* a, Tout* y, Acc const& acc = {}) {
681
- constexpr auto cts =
682
- CompileTimeSelector<Function::kInvcbrt, Tin, Tout, Acc::a>::result;
683
- Evaluator<Function::kInvcbrt, Tin, Tout, cts.first, cts.second> EV;
684
- return EV(a, y);
685
- }
686
-
687
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
688
- typename std::enable_if<ExistsAtAll<Function::kInvsqrt, Tin, Tout, Acc::a>,
689
- oneapi::mkl::vm::status>::type
690
- invsqrt(const Tin* a, Tout* y, Acc const& acc = {}) {
691
- constexpr auto cts =
692
- CompileTimeSelector<Function::kInvsqrt, Tin, Tout, Acc::a>::result;
693
- Evaluator<Function::kInvsqrt, Tin, Tout, cts.first, cts.second> EV;
694
- return EV(a, y);
695
- }
696
-
697
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
698
- typename std::enable_if<ExistsAtAll<Function::kLgamma, Tin, Tout, Acc::a>,
699
- oneapi::mkl::vm::status>::type
700
- lgamma(const Tin* a, Tout* y, Acc const& acc = {}) {
701
- constexpr auto cts =
702
- CompileTimeSelector<Function::kLgamma, Tin, Tout, Acc::a>::result;
703
- Evaluator<Function::kLgamma, Tin, Tout, cts.first, cts.second> EV;
704
- return EV(a, y);
705
- }
706
-
707
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
708
- typename std::enable_if<ExistsAtAll<Function::kLn, Tin, Tout, Acc::a>,
709
- oneapi::mkl::vm::status>::type
710
- ln(const Tin* a, Tout* y, Acc const& acc = {}) {
711
- constexpr auto cts =
712
- CompileTimeSelector<Function::kLn, Tin, Tout, Acc::a>::result;
713
- Evaluator<Function::kLn, Tin, Tout, cts.first, cts.second> EV;
714
- return EV(a, y);
715
- }
716
-
717
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
718
- typename std::enable_if<ExistsAtAll<Function::kLog10, Tin, Tout, Acc::a>,
719
- oneapi::mkl::vm::status>::type
720
- log10(const Tin* a, Tout* y, Acc const& acc = {}) {
721
- constexpr auto cts =
722
- CompileTimeSelector<Function::kLog10, Tin, Tout, Acc::a>::result;
723
- Evaluator<Function::kLog10, Tin, Tout, cts.first, cts.second> EV;
724
- return EV(a, y);
725
- }
726
-
727
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
728
- typename std::enable_if<ExistsAtAll<Function::kLog1p, Tin, Tout, Acc::a>,
729
- oneapi::mkl::vm::status>::type
730
- log1p(const Tin* a, Tout* y, Acc const& acc = {}) {
731
- constexpr auto cts =
732
- CompileTimeSelector<Function::kLog1p, Tin, Tout, Acc::a>::result;
733
- Evaluator<Function::kLog1p, Tin, Tout, cts.first, cts.second> EV;
734
- return EV(a, y);
735
- }
736
-
737
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
738
- typename std::enable_if<ExistsAtAll<Function::kLog2, Tin, Tout, Acc::a>,
739
- oneapi::mkl::vm::status>::type
740
- log2(const Tin* a, Tout* y, Acc const& acc = {}) {
741
- constexpr auto cts =
742
- CompileTimeSelector<Function::kLog2, Tin, Tout, Acc::a>::result;
743
- Evaluator<Function::kLog2, Tin, Tout, cts.first, cts.second> EV;
744
- return EV(a, y);
745
- }
746
-
747
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
748
- typename std::enable_if<ExistsAtAll<Function::kLogb, Tin, Tout, Acc::a>,
749
- oneapi::mkl::vm::status>::type
750
- logb(const Tin* a, Tout* y, Acc const& acc = {}) {
751
- constexpr auto cts =
752
- CompileTimeSelector<Function::kLogb, Tin, Tout, Acc::a>::result;
753
- Evaluator<Function::kLogb, Tin, Tout, cts.first, cts.second> EV;
754
- return EV(a, y);
755
- }
756
-
757
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
758
- typename std::enable_if<ExistsAtAll<Function::kMaxmag, Tin, Tout, Acc::a>,
759
- oneapi::mkl::vm::status>::type
760
- maxmag(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
761
- constexpr auto cts =
762
- CompileTimeSelector<Function::kMaxmag, Tin, Tout, Acc::a>::result;
763
- Evaluator<Function::kMaxmag, Tin, Tout, cts.first, cts.second> EV;
764
- return EV(a, b, y);
765
- }
766
-
767
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
768
- typename std::enable_if<ExistsAtAll<Function::kMinmag, Tin, Tout, Acc::a>,
769
- oneapi::mkl::vm::status>::type
770
- minmag(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
771
- constexpr auto cts =
772
- CompileTimeSelector<Function::kMinmag, Tin, Tout, Acc::a>::result;
773
- Evaluator<Function::kMinmag, Tin, Tout, cts.first, cts.second> EV;
774
- return EV(a, b, y);
775
- }
776
-
777
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
778
- typename std::enable_if<ExistsAtAll<Function::kModf, Tin, Tout, Acc::a>,
779
- oneapi::mkl::vm::status>::type
780
- modf(const Tin* a, Tout* y, Tout* z, Acc const& acc = {}) {
781
- constexpr auto cts =
782
- CompileTimeSelector<Function::kModf, Tin, Tout, Acc::a>::result;
783
- Evaluator<Function::kModf, Tin, Tout, cts.first, cts.second> EV;
784
- return EV(a, y, z);
785
- }
786
-
787
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
788
- typename std::enable_if<ExistsAtAll<Function::kMul, Tin, Tout, Acc::a>,
789
- oneapi::mkl::vm::status>::type
790
- mul(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
791
- constexpr auto cts =
792
- CompileTimeSelector<Function::kMul, Tin, Tout, Acc::a>::result;
793
- Evaluator<Function::kMul, Tin, Tout, cts.first, cts.second> EV;
794
- return EV(a, b, y);
795
- }
796
-
797
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
798
- typename std::enable_if<ExistsAtAll<Function::kMulbyconj, Tin, Tout, Acc::a>,
799
- oneapi::mkl::vm::status>::type
800
- mulbyconj(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
801
- constexpr auto cts =
802
- CompileTimeSelector<Function::kMulbyconj, Tin, Tout, Acc::a>::result;
803
- Evaluator<Function::kMulbyconj, Tin, Tout, cts.first, cts.second> EV;
804
- return EV(a, b, y);
805
- }
806
-
807
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
808
- typename std::enable_if<ExistsAtAll<Function::kNearbyint, Tin, Tout, Acc::a>,
809
- oneapi::mkl::vm::status>::type
810
- nearbyint(const Tin* a, Tout* y, Acc const& acc = {}) {
811
- constexpr auto cts =
812
- CompileTimeSelector<Function::kNearbyint, Tin, Tout, Acc::a>::result;
813
- Evaluator<Function::kNearbyint, Tin, Tout, cts.first, cts.second> EV;
814
- return EV(a, y);
815
- }
816
-
817
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
818
- typename std::enable_if<ExistsAtAll<Function::kNextafter, Tin, Tout, Acc::a>,
819
- oneapi::mkl::vm::status>::type
820
- nextafter(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
821
- constexpr auto cts =
822
- CompileTimeSelector<Function::kNextafter, Tin, Tout, Acc::a>::result;
823
- Evaluator<Function::kNextafter, Tin, Tout, cts.first, cts.second> EV;
824
- return EV(a, b, y);
825
- }
826
-
827
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
828
- typename std::enable_if<ExistsAtAll<Function::kPow, Tin, Tout, Acc::a>,
829
- oneapi::mkl::vm::status>::type
830
- pow(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
831
- constexpr auto cts =
832
- CompileTimeSelector<Function::kPow, Tin, Tout, Acc::a>::result;
833
- Evaluator<Function::kPow, Tin, Tout, cts.first, cts.second> EV;
834
- return EV(a, b, y);
835
- }
836
-
837
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
838
- typename std::enable_if<ExistsAtAll<Function::kPow2o3, Tin, Tout, Acc::a>,
839
- oneapi::mkl::vm::status>::type
840
- pow2o3(const Tin* a, Tout* y, Acc const& acc = {}) {
841
- constexpr auto cts =
842
- CompileTimeSelector<Function::kPow2o3, Tin, Tout, Acc::a>::result;
843
- Evaluator<Function::kPow2o3, Tin, Tout, cts.first, cts.second> EV;
844
- return EV(a, y);
845
- }
846
-
847
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
848
- typename std::enable_if<ExistsAtAll<Function::kPow3o2, Tin, Tout, Acc::a>,
849
- oneapi::mkl::vm::status>::type
850
- pow3o2(const Tin* a, Tout* y, Acc const& acc = {}) {
851
- constexpr auto cts =
852
- CompileTimeSelector<Function::kPow3o2, Tin, Tout, Acc::a>::result;
853
- Evaluator<Function::kPow3o2, Tin, Tout, cts.first, cts.second> EV;
854
- return EV(a, y);
855
- }
856
-
857
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
858
- typename std::enable_if<ExistsAtAll<Function::kPowr, Tin, Tout, Acc::a>,
859
- oneapi::mkl::vm::status>::type
860
- powr(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
861
- constexpr auto cts =
862
- CompileTimeSelector<Function::kPowr, Tin, Tout, Acc::a>::result;
863
- Evaluator<Function::kPowr, Tin, Tout, cts.first, cts.second> EV;
864
- return EV(a, b, y);
865
- }
866
-
867
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
868
- typename std::enable_if<ExistsAtAll<Function::kPowx, Tin, Tout, Acc::a>,
869
- oneapi::mkl::vm::status>::type
870
- powx(const Tin* a, const Tin b, Tout* y, Acc const& acc = {}) {
871
- constexpr auto cts =
872
- CompileTimeSelector<Function::kPowx, Tin, Tout, Acc::a>::result;
873
- Evaluator<Function::kPowx, Tin, Tout, cts.first, cts.second> EV;
874
- return EV(a, b, y);
875
- }
876
-
877
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
878
- typename std::enable_if<ExistsAtAll<Function::kRemainder, Tin, Tout, Acc::a>,
879
- oneapi::mkl::vm::status>::type
880
- remainder(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
881
- constexpr auto cts =
882
- CompileTimeSelector<Function::kRemainder, Tin, Tout, Acc::a>::result;
883
- Evaluator<Function::kRemainder, Tin, Tout, cts.first, cts.second> EV;
884
- return EV(a, b, y);
885
- }
886
-
887
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
888
- typename std::enable_if<ExistsAtAll<Function::kRint, Tin, Tout, Acc::a>,
889
- oneapi::mkl::vm::status>::type
890
- rint(const Tin* a, Tout* y, Acc const& acc = {}) {
891
- constexpr auto cts =
892
- CompileTimeSelector<Function::kRint, Tin, Tout, Acc::a>::result;
893
- Evaluator<Function::kRint, Tin, Tout, cts.first, cts.second> EV;
894
- return EV(a, y);
895
- }
896
-
897
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
898
- typename std::enable_if<ExistsAtAll<Function::kRound, Tin, Tout, Acc::a>,
899
- oneapi::mkl::vm::status>::type
900
- round(const Tin* a, Tout* y, Acc const& acc = {}) {
901
- constexpr auto cts =
902
- CompileTimeSelector<Function::kRound, Tin, Tout, Acc::a>::result;
903
- Evaluator<Function::kRound, Tin, Tout, cts.first, cts.second> EV;
904
- return EV(a, y);
905
- }
906
-
907
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
908
- typename std::enable_if<ExistsAtAll<Function::kSin, Tin, Tout, Acc::a>,
909
- oneapi::mkl::vm::status>::type
910
- sin(const Tin* a, Tout* y, Acc const& acc = {}) {
911
- constexpr auto cts =
912
- CompileTimeSelector<Function::kSin, Tin, Tout, Acc::a>::result;
913
- Evaluator<Function::kSin, Tin, Tout, cts.first, cts.second> EV;
914
- return EV(a, y);
915
- }
916
-
917
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
918
- typename std::enable_if<ExistsAtAll<Function::kSincos, Tin, Tout, Acc::a>,
919
- oneapi::mkl::vm::status>::type
920
- sincos(const Tin* a, Tout* y, Tout* z, Acc const& acc = {}) {
921
- constexpr auto cts =
922
- CompileTimeSelector<Function::kSincos, Tin, Tout, Acc::a>::result;
923
- Evaluator<Function::kSincos, Tin, Tout, cts.first, cts.second> EV;
924
- return EV(a, y, z);
925
- }
926
-
927
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
928
- typename std::enable_if<ExistsAtAll<Function::kSincospi, Tin, Tout, Acc::a>,
929
- oneapi::mkl::vm::status>::type
930
- sincospi(const Tin* a, Tout* y, Tout* z, Acc const& acc = {}) {
931
- constexpr auto cts =
932
- CompileTimeSelector<Function::kSincospi, Tin, Tout, Acc::a>::result;
933
- Evaluator<Function::kSincospi, Tin, Tout, cts.first, cts.second> EV;
934
- return EV(a, y, z);
935
- }
936
-
937
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
938
- typename std::enable_if<ExistsAtAll<Function::kSind, Tin, Tout, Acc::a>,
939
- oneapi::mkl::vm::status>::type
940
- sind(const Tin* a, Tout* y, Acc const& acc = {}) {
941
- constexpr auto cts =
942
- CompileTimeSelector<Function::kSind, Tin, Tout, Acc::a>::result;
943
- Evaluator<Function::kSind, Tin, Tout, cts.first, cts.second> EV;
944
- return EV(a, y);
945
- }
946
-
947
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
948
- typename std::enable_if<ExistsAtAll<Function::kSinh, Tin, Tout, Acc::a>,
949
- oneapi::mkl::vm::status>::type
950
- sinh(const Tin* a, Tout* y, Acc const& acc = {}) {
951
- constexpr auto cts =
952
- CompileTimeSelector<Function::kSinh, Tin, Tout, Acc::a>::result;
953
- Evaluator<Function::kSinh, Tin, Tout, cts.first, cts.second> EV;
954
- return EV(a, y);
955
- }
956
-
957
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
958
- typename std::enable_if<ExistsAtAll<Function::kSinpi, Tin, Tout, Acc::a>,
959
- oneapi::mkl::vm::status>::type
960
- sinpi(const Tin* a, Tout* y, Acc const& acc = {}) {
961
- constexpr auto cts =
962
- CompileTimeSelector<Function::kSinpi, Tin, Tout, Acc::a>::result;
963
- Evaluator<Function::kSinpi, Tin, Tout, cts.first, cts.second> EV;
964
- return EV(a, y);
965
- }
966
-
967
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
968
- typename std::enable_if<ExistsAtAll<Function::kSqr, Tin, Tout, Acc::a>,
969
- oneapi::mkl::vm::status>::type
970
- sqr(const Tin* a, Tout* y, Acc const& acc = {}) {
971
- constexpr auto cts =
972
- CompileTimeSelector<Function::kSqr, Tin, Tout, Acc::a>::result;
973
- Evaluator<Function::kSqr, Tin, Tout, cts.first, cts.second> EV;
974
- return EV(a, y);
975
- }
976
-
977
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
978
- typename std::enable_if<ExistsAtAll<Function::kSqrt, Tin, Tout, Acc::a>,
979
- oneapi::mkl::vm::status>::type
980
- sqrt(const Tin* a, Tout* y, Acc const& acc = {}) {
981
- constexpr auto cts =
982
- CompileTimeSelector<Function::kSqrt, Tin, Tout, Acc::a>::result;
983
- Evaluator<Function::kSqrt, Tin, Tout, cts.first, cts.second> EV;
984
- return EV(a, y);
985
- }
986
-
987
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
988
- typename std::enable_if<ExistsAtAll<Function::kSub, Tin, Tout, Acc::a>,
989
- oneapi::mkl::vm::status>::type
990
- sub(const Tin* a, const Tin* b, Tout* y, Acc const& acc = {}) {
991
- constexpr auto cts =
992
- CompileTimeSelector<Function::kSub, Tin, Tout, Acc::a>::result;
993
- Evaluator<Function::kSub, Tin, Tout, cts.first, cts.second> EV;
994
- return EV(a, b, y);
995
- }
996
-
997
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
998
- typename std::enable_if<ExistsAtAll<Function::kTan, Tin, Tout, Acc::a>,
999
- oneapi::mkl::vm::status>::type
1000
- tan(const Tin* a, Tout* y, Acc const& acc = {}) {
1001
- constexpr auto cts =
1002
- CompileTimeSelector<Function::kTan, Tin, Tout, Acc::a>::result;
1003
- Evaluator<Function::kTan, Tin, Tout, cts.first, cts.second> EV;
1004
- return EV(a, y);
1005
- }
1006
-
1007
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
1008
- typename std::enable_if<ExistsAtAll<Function::kTand, Tin, Tout, Acc::a>,
1009
- oneapi::mkl::vm::status>::type
1010
- tand(const Tin* a, Tout* y, Acc const& acc = {}) {
1011
- constexpr auto cts =
1012
- CompileTimeSelector<Function::kTand, Tin, Tout, Acc::a>::result;
1013
- Evaluator<Function::kTand, Tin, Tout, cts.first, cts.second> EV;
1014
- return EV(a, y);
1015
- }
1016
-
1017
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
1018
- typename std::enable_if<ExistsAtAll<Function::kTanh, Tin, Tout, Acc::a>,
1019
- oneapi::mkl::vm::status>::type
1020
- tanh(const Tin* a, Tout* y, Acc const& acc = {}) {
1021
- constexpr auto cts =
1022
- CompileTimeSelector<Function::kTanh, Tin, Tout, Acc::a>::result;
1023
- Evaluator<Function::kTanh, Tin, Tout, cts.first, cts.second> EV;
1024
- return EV(a, y);
1025
- }
1026
-
1027
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
1028
- typename std::enable_if<ExistsAtAll<Function::kTanpi, Tin, Tout, Acc::a>,
1029
- oneapi::mkl::vm::status>::type
1030
- tanpi(const Tin* a, Tout* y, Acc const& acc = {}) {
1031
- constexpr auto cts =
1032
- CompileTimeSelector<Function::kTanpi, Tin, Tout, Acc::a>::result;
1033
- Evaluator<Function::kTanpi, Tin, Tout, cts.first, cts.second> EV;
1034
- return EV(a, y);
1035
- }
1036
-
1037
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
1038
- typename std::enable_if<ExistsAtAll<Function::kTgamma, Tin, Tout, Acc::a>,
1039
- oneapi::mkl::vm::status>::type
1040
- tgamma(const Tin* a, Tout* y, Acc const& acc = {}) {
1041
- constexpr auto cts =
1042
- CompileTimeSelector<Function::kTgamma, Tin, Tout, Acc::a>::result;
1043
- Evaluator<Function::kTgamma, Tin, Tout, cts.first, cts.second> EV;
1044
- return EV(a, y);
1045
- }
1046
-
1047
- template <typename Tin, typename Tout, typename Acc = decltype(DefaultAccuracy)>
1048
- typename std::enable_if<ExistsAtAll<Function::kTrunc, Tin, Tout, Acc::a>,
1049
- oneapi::mkl::vm::status>::type
1050
- trunc(const Tin* a, Tout* y, Acc const& acc = {}) {
1051
- constexpr auto cts =
1052
- CompileTimeSelector<Function::kTrunc, Tin, Tout, Acc::a>::result;
1053
- Evaluator<Function::kTrunc, Tin, Tout, cts.first, cts.second> EV;
1054
- return EV(a, y);
1055
- }
1056
-
1057
- } // namespace oneapi::mkl::vm::device::detail
1058
-
1059
- #endif // #ifndef ONEAPI_MKL_VM_DEVICE_VM_DETAIL_DISPATCH_HPP