mkl-devel-dpcpp 2024.0.0__py2.py3-none-win_amd64.whl → 2024.2.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.

Potentially problematic release.


This version of mkl-devel-dpcpp might be problematic. Click here for more details.

Files changed (95) hide show
  1. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +53 -15
  2. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +186 -146
  3. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/dfti.hpp +3 -1
  4. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/lapack/concepts.hpp +55 -0
  5. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +75 -0
  6. {mkl_devel_dpcpp-2024.0.0.data/data/Library/include/oneapi/mkl → mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/lapack}/lapack.hpp +79 -315
  7. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +106 -0
  8. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/lapack.hpp +23 -0
  9. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/engines.hpp +20 -0
  10. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/functions.hpp +2 -0
  11. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +68 -0
  12. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +383 -0
  13. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +194 -0
  14. mkl_devel_dpcpp-2024.2.0.data/data/Library/include/oneapi/mkl/spblas.hpp +32 -0
  15. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/stats.hpp +2 -2
  16. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/buffer.hpp +63 -1
  17. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/decls.hpp +2 -2
  18. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +1 -1
  19. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +1 -1
  20. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +1 -1
  21. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +1 -1
  22. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +1 -1
  23. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +1 -1
  24. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +1 -1
  25. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/device/vm.hpp +1 -1
  26. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/span.hpp +69 -1
  27. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm/usm.hpp +67 -1
  28. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
  29. mkl_devel_dpcpp-2024.2.0.data/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
  30. mkl_devel_dpcpp-2024.2.0.data/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
  31. mkl_devel_dpcpp-2024.2.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  32. mkl_devel_dpcpp-2024.2.0.data/data/Library/lib/mkl_sycl_dll.lib +0 -0
  33. mkl_devel_dpcpp-2024.2.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  34. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
  35. mkl_devel_dpcpp-2024.2.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  36. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
  37. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
  38. {mkl_devel_dpcpp-2024.0.0.dist-info → mkl_devel_dpcpp-2024.2.0.dist-info}/METADATA +23 -25
  39. mkl_devel_dpcpp-2024.2.0.dist-info/RECORD +87 -0
  40. {mkl_devel_dpcpp-2024.0.0.dist-info → mkl_devel_dpcpp-2024.2.0.dist-info}/WHEEL +1 -1
  41. mkl_devel_dpcpp-2024.0.0.data/data/Library/include/oneapi/mkl/spblas.hpp +0 -963
  42. mkl_devel_dpcpp-2024.0.0.data/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
  43. mkl_devel_dpcpp-2024.0.0.data/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
  44. mkl_devel_dpcpp-2024.0.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  45. mkl_devel_dpcpp-2024.0.0.data/data/Library/lib/mkl_sycl_dll.lib +0 -0
  46. mkl_devel_dpcpp-2024.0.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  47. mkl_devel_dpcpp-2024.0.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  48. mkl_devel_dpcpp-2024.0.0.dist-info/RECORD +0 -80
  49. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -0
  50. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -0
  51. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/blas/types.hpp +0 -0
  52. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -0
  53. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/blas.hpp +0 -0
  54. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/exceptions.hpp +0 -0
  55. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -0
  56. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -0
  57. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -0
  58. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -0
  59. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/export.hpp +0 -0
  60. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -0
  61. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -0
  62. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -0
  63. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +0 -0
  64. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -0
  65. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -0
  66. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +0 -0
  67. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -0
  68. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -0
  69. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -0
  70. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +0 -0
  71. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -0
  72. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +0 -0
  73. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -0
  74. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -0
  75. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -0
  76. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -0
  77. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -0
  78. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -0
  79. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -0
  80. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -0
  81. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -0
  82. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +0 -0
  83. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +0 -0
  84. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -0
  85. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/engines.hpp +0 -0
  86. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -0
  87. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device/types.hpp +0 -0
  88. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/device.hpp +0 -0
  89. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng/distributions.hpp +0 -0
  90. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/rng.hpp +0 -0
  91. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/types.hpp +0 -0
  92. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl/vm.hpp +0 -0
  93. {mkl_devel_dpcpp-2024.0.0.data → mkl_devel_dpcpp-2024.2.0.data}/data/Library/include/oneapi/mkl.hpp +0 -0
  94. {mkl_devel_dpcpp-2024.0.0.dist-info → mkl_devel_dpcpp-2024.2.0.dist-info}/LICENSE.txt +0 -0
  95. {mkl_devel_dpcpp-2024.0.0.dist-info → mkl_devel_dpcpp-2024.2.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  /*******************************************************************************
2
- * Copyright 2018-2022 Intel Corporation.
2
+ * Copyright 2024 Intel Corporation.
3
3
  *
4
4
  * This software and the related documents are Intel copyrighted materials, and
5
5
  * your use of them is governed by the express license under which they were
@@ -11,40 +11,20 @@
11
11
  * or implied warranties, other than those that are expressly stated in the
12
12
  * License.
13
13
  *******************************************************************************/
14
+ #ifndef _ONEAPI_MKL_LAPACK_LAPACK_HPP__
15
+ #define _ONEAPI_MKL_LAPACK_LAPACK_HPP__
14
16
 
15
- #ifndef _LAPACK_HPP__
16
- #define _LAPACK_HPP__
17
-
18
- //
19
- // DPC++ MKL LAPACK API
20
- //
21
-
22
- #include <cstdint>
23
17
  #include <complex>
24
-
18
+ #include <cstdint>
25
19
  #include <sycl/sycl.hpp>
26
20
 
27
- #include "oneapi/mkl/export.hpp"
28
- #include "mkl_types.h"
29
21
  #include "oneapi/mkl/types.hpp"
30
- #include "oneapi/mkl/exceptions.hpp"
22
+ #include "oneapi/mkl/export.hpp"
31
23
 
32
24
  namespace oneapi {
33
25
  namespace mkl {
34
26
  namespace lapack {
35
27
 
36
- namespace internal
37
- {
38
- // auxilary type aliases and forward declarations
39
- template <bool, typename T=void> struct enable_if;
40
- template <typename T> struct is_fp;
41
- template <typename T> struct is_rfp;
42
- template <typename T> struct is_cfp;
43
- template <typename fp> using is_floating_point = typename enable_if<is_fp<fp>::value>::type*;
44
- template <typename fp> using is_real_floating_point = typename enable_if<is_rfp<fp>::value>::type*;
45
- template <typename fp> using is_complex_floating_point = typename enable_if<is_cfp<fp>::value>::type*;
46
- }
47
-
48
28
  // potrf
49
29
  DLL_EXPORT sycl::event potrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, float *a, std::int64_t lda, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
50
30
  DLL_EXPORT sycl::event potrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, double *a, std::int64_t lda, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
@@ -54,8 +34,6 @@ DLL_EXPORT void potrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n
54
34
  DLL_EXPORT void potrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
55
35
  DLL_EXPORT void potrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
56
36
  DLL_EXPORT void potrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
57
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
58
- std::int64_t potrf_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda);
59
37
 
60
38
  // potrs
61
39
  DLL_EXPORT sycl::event potrs(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, float *a, std::int64_t lda, float *b, std::int64_t ldb, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
@@ -66,8 +44,6 @@ DLL_EXPORT void potrs(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n
66
44
  DLL_EXPORT void potrs(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &b, std::int64_t ldb, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
67
45
  DLL_EXPORT void potrs(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &b, std::int64_t ldb, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
68
46
  DLL_EXPORT void potrs(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &b, std::int64_t ldb, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
69
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
70
- std::int64_t potrs_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, std::int64_t lda, std::int64_t ldb);
71
47
 
72
48
  // potri
73
49
  DLL_EXPORT sycl::event potri(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, float *a, std::int64_t lda, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
@@ -78,28 +54,18 @@ DLL_EXPORT void potri(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n
78
54
  DLL_EXPORT void potri(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
79
55
  DLL_EXPORT void potri(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
80
56
  DLL_EXPORT void potri(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
81
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
82
- std::int64_t potri_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda);
83
57
 
84
58
  // trtri
85
59
  DLL_EXPORT sycl::event trtri(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::diag diag, std::int64_t n, float *a, std::int64_t lda, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
86
60
  DLL_EXPORT sycl::event trtri(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::diag diag, std::int64_t n, double *a, std::int64_t lda, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
87
61
  DLL_EXPORT sycl::event trtri(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::diag diag, std::int64_t n, std::complex<float> *a, std::int64_t lda, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
88
62
  DLL_EXPORT sycl::event trtri(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::diag diag, std::int64_t n, std::complex<double> *a, std::int64_t lda, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
89
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
90
- std::int64_t trtri_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::diag diag, std::int64_t n, std::int64_t lda);
91
63
 
92
64
  // gesv
93
65
  DLL_EXPORT sycl::event gesv(sycl::queue &queue, std::int64_t n, std::int64_t nrhs, float *a, std::int64_t lda, std::int64_t *ipiv, float *b, std::int64_t ldb, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
94
66
  DLL_EXPORT sycl::event gesv(sycl::queue &queue, std::int64_t n, std::int64_t nrhs, double *a, std::int64_t lda, std::int64_t *ipiv, double *b, std::int64_t ldb, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
95
67
  DLL_EXPORT sycl::event gesv(sycl::queue &queue, std::int64_t n, std::int64_t nrhs, std::complex<float> *a, std::int64_t lda, std::int64_t *ipiv, std::complex<float> *b, std::int64_t ldb, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
96
68
  DLL_EXPORT sycl::event gesv(sycl::queue &queue, std::int64_t n, std::int64_t nrhs, std::complex<double> *a, std::int64_t lda, std::int64_t *ipiv, std::complex<double> *b, std::int64_t ldb, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
97
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
98
- std::int64_t gesv_scratchpad_size(sycl::queue &queue, std::int64_t n, std::int64_t nrhs, std::int64_t lda, std::int64_t ldb);
99
-
100
- // gebrd: scratchpad size query
101
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
102
- int64_t gebrd_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t lda);
103
69
 
104
70
  // gebrd: USM API
105
71
  DLL_EXPORT sycl::event gebrd(sycl::queue &queue, int64_t m, int64_t n, std::complex<float> *a, int64_t lda, float *d,
@@ -133,10 +99,6 @@ DLL_EXPORT void gebrd(sycl::queue &queue, int64_t m, int64_t n, sycl::buffer<std
133
99
  sycl::buffer<std::complex<double>> &taup, sycl::buffer<std::complex<double>> &scratchpad,
134
100
  int64_t scratchpad_size);
135
101
 
136
- // geqrf: scratchpad size query
137
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
138
- int64_t geqrf_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t lda);
139
-
140
102
  // geqrf: USM API
141
103
  DLL_EXPORT sycl::event geqrf(sycl::queue &queue, int64_t m, int64_t n, std::complex<float> *a, int64_t lda,
142
104
  std::complex<float> *tau, std::complex<float> *scratchpad, int64_t scratchpad_size,
@@ -163,11 +125,6 @@ DLL_EXPORT void geqrf(sycl::queue &queue, int64_t m, int64_t n, sycl::buffer<std
163
125
  int64_t lda, sycl::buffer<std::complex<double>> &tau,
164
126
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
165
127
 
166
- // gesvd_cmplx: scratchpad size query
167
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
168
- int64_t gesvd_scratchpad_size(sycl::queue &queue, oneapi::mkl::jobsvd jobu, oneapi::mkl::jobsvd jobvt, int64_t m,
169
- int64_t n, int64_t lda, int64_t ldu, int64_t ldvt);
170
-
171
128
  // gesvd_cmplx: USM API
172
129
  DLL_EXPORT sycl::event gesvd(sycl::queue &queue, oneapi::mkl::jobsvd jobu, oneapi::mkl::jobsvd jobvt, int64_t m,
173
130
  int64_t n, std::complex<float> *a, int64_t lda, float *s, std::complex<float> *u,
@@ -188,11 +145,6 @@ DLL_EXPORT void gesvd(sycl::queue &queue, oneapi::mkl::jobsvd jobu, oneapi::mkl:
188
145
  sycl::buffer<std::complex<double>> &u, int64_t ldu, sycl::buffer<std::complex<double>> &vt,
189
146
  int64_t ldvt, sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
190
147
 
191
- // gesvd_real: scratchpad size query
192
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
193
- int64_t gesvd_scratchpad_size(sycl::queue &queue, oneapi::mkl::jobsvd jobu, oneapi::mkl::jobsvd jobvt, int64_t m,
194
- int64_t n, int64_t lda, int64_t ldu, int64_t ldvt);
195
-
196
148
  // gesvd_real: USM API
197
149
  DLL_EXPORT sycl::event gesvd(sycl::queue &queue, oneapi::mkl::jobsvd jobu, oneapi::mkl::jobsvd jobvt, int64_t m,
198
150
  int64_t n, double *a, int64_t lda, double *s, double *u, int64_t ldu, double *vt,
@@ -212,9 +164,56 @@ DLL_EXPORT void gesvd(sycl::queue &queue, oneapi::mkl::jobsvd jobu, oneapi::mkl:
212
164
  sycl::buffer<float> &a, int64_t lda, sycl::buffer<float> &s, sycl::buffer<float> &u, int64_t ldu,
213
165
  sycl::buffer<float> &vt, int64_t ldvt, sycl::buffer<float> &scratchpad, int64_t scratchpad_size);
214
166
 
215
- // getrf: scratchpad size query
216
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
217
- int64_t getrf_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t lda);
167
+
168
+ // gesvda_batch_strided: USM API
169
+ DLL_EXPORT sycl::event gesvda_batch(sycl::queue &queue, int64_t *iparm, int64_t *irank, int64_t m, int64_t n,
170
+ std::complex<float> *a, int64_t lda, int64_t stride_a, float *s, int64_t stride_s,
171
+ std::complex<float> *u, int64_t ldu, int64_t stride_u, std::complex<float> *vt,
172
+ int64_t ldvt, int64_t stride_vt, float tolerance, float *residual,
173
+ int64_t batch_size, std::complex<float> *scratchpad, int64_t scratchpad_size,
174
+ const std::vector<sycl::event> &event_list = {});
175
+ DLL_EXPORT sycl::event gesvda_batch(sycl::queue &queue, int64_t *iparm, int64_t *irank, int64_t m, int64_t n, double *a,
176
+ int64_t lda, int64_t stride_a, double *s, int64_t stride_s, double *u, int64_t ldu,
177
+ int64_t stride_u, double *vt, int64_t ldvt, int64_t stride_vt, double tolerance,
178
+ double *residual, int64_t batch_size, double *scratchpad, int64_t scratchpad_size,
179
+ const std::vector<sycl::event> &event_list = {});
180
+ DLL_EXPORT sycl::event gesvda_batch(sycl::queue &queue, int64_t *iparm, int64_t *irank, int64_t m, int64_t n, float *a,
181
+ int64_t lda, int64_t stride_a, float *s, int64_t stride_s, float *u, int64_t ldu,
182
+ int64_t stride_u, float *vt, int64_t ldvt, int64_t stride_vt, float tolerance,
183
+ float *residual, int64_t batch_size, float *scratchpad, int64_t scratchpad_size,
184
+ const std::vector<sycl::event> &event_list = {});
185
+ DLL_EXPORT sycl::event gesvda_batch(sycl::queue &queue, int64_t *iparm, int64_t *irank, int64_t m, int64_t n,
186
+ std::complex<double> *a, int64_t lda, int64_t stride_a, double *s, int64_t stride_s,
187
+ std::complex<double> *u, int64_t ldu, int64_t stride_u, std::complex<double> *vt,
188
+ int64_t ldvt, int64_t stride_vt, double tolerance, double *residual,
189
+ int64_t batch_size, std::complex<double> *scratchpad, int64_t scratchpad_size,
190
+ const std::vector<sycl::event> &event_list = {});
191
+
192
+ // gesvda_batch_strided: Buffer API
193
+ DLL_EXPORT void gesvda_batch(sycl::queue &queue, sycl::buffer<int64_t> &iparm, sycl::buffer<int64_t> &irank, int64_t m,
194
+ int64_t n, sycl::buffer<std::complex<float>> &a, int64_t lda, int64_t stride_a,
195
+ sycl::buffer<float> &s, int64_t stride_s, sycl::buffer<std::complex<float>> &u,
196
+ int64_t ldu, int64_t stride_u, sycl::buffer<std::complex<float>> &vt, int64_t ldvt,
197
+ int64_t stride_vt, float tolerance, sycl::buffer<float> &residual, int64_t batch_size,
198
+ sycl::buffer<std::complex<float>> &scratchpad, int64_t scratchpad_size);
199
+ DLL_EXPORT void gesvda_batch(sycl::queue &queue, sycl::buffer<int64_t> &iparm, sycl::buffer<int64_t> &irank, int64_t m,
200
+ int64_t n, sycl::buffer<double> &a, int64_t lda, int64_t stride_a, sycl::buffer<double> &s,
201
+ int64_t stride_s, sycl::buffer<double> &u, int64_t ldu, int64_t stride_u,
202
+ sycl::buffer<double> &vt, int64_t ldvt, int64_t stride_vt, double tolerance,
203
+ sycl::buffer<double> &residual, int64_t batch_size, sycl::buffer<double> &scratchpad,
204
+ int64_t scratchpad_size);
205
+ DLL_EXPORT void gesvda_batch(sycl::queue &queue, sycl::buffer<int64_t> &iparm, sycl::buffer<int64_t> &irank, int64_t m,
206
+ int64_t n, sycl::buffer<float> &a, int64_t lda, int64_t stride_a, sycl::buffer<float> &s,
207
+ int64_t stride_s, sycl::buffer<float> &u, int64_t ldu, int64_t stride_u,
208
+ sycl::buffer<float> &vt, int64_t ldvt, int64_t stride_vt, float tolerance,
209
+ sycl::buffer<float> &residual, int64_t batch_size, sycl::buffer<float> &scratchpad,
210
+ int64_t scratchpad_size);
211
+ DLL_EXPORT void gesvda_batch(sycl::queue &queue, sycl::buffer<int64_t> &iparm, sycl::buffer<int64_t> &irank, int64_t m,
212
+ int64_t n, sycl::buffer<std::complex<double>> &a, int64_t lda, int64_t stride_a,
213
+ sycl::buffer<double> &s, int64_t stride_s, sycl::buffer<std::complex<double>> &u,
214
+ int64_t ldu, int64_t stride_u, sycl::buffer<std::complex<double>> &vt, int64_t ldvt,
215
+ int64_t stride_vt, double tolerance, sycl::buffer<double> &residual, int64_t batch_size,
216
+ sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
218
217
 
219
218
  // getrf: USM API
220
219
  DLL_EXPORT sycl::event getrf(sycl::queue &queue, int64_t m, int64_t n, std::complex<float> *a, int64_t lda,
@@ -242,11 +241,6 @@ DLL_EXPORT void getrf(sycl::queue &queue, int64_t m, int64_t n, sycl::buffer<std
242
241
  sycl::buffer<int64_t> &ipiv, sycl::buffer<std::complex<double>> &scratchpad,
243
242
  int64_t scratchpad_size);
244
243
 
245
- // getrf_batch_group: scratchpad size query
246
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
247
- int64_t getrf_batch_scratchpad_size(sycl::queue &queue, int64_t* m, int64_t* n, int64_t* lda, int64_t group_count,
248
- int64_t* group_sizes);
249
-
250
244
  // getrf_batch_group: USM API
251
245
  DLL_EXPORT sycl::event getrf_batch(sycl::queue &queue, int64_t *m, int64_t *n, std::complex<float> **a, int64_t *lda,
252
246
  int64_t **ipiv, int64_t group_count, int64_t *group_sizes,
@@ -263,11 +257,6 @@ DLL_EXPORT sycl::event getrf_batch(sycl::queue &queue, int64_t *m, int64_t *n, s
263
257
  std::complex<double> *scratchpad, int64_t scratchpad_size,
264
258
  const std::vector<sycl::event> &event_list = {});
265
259
 
266
- // getrf_batch_strided: scratchpad size query
267
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
268
- int64_t getrf_batch_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t lda, int64_t stride_a,
269
- int64_t stride_ipiv, int64_t batch_size);
270
-
271
260
  // getrf_batch_strided: USM API
272
261
  DLL_EXPORT sycl::event getrf_batch(sycl::queue &queue, int64_t m, int64_t n, std::complex<float> *a, int64_t lda,
273
262
  int64_t stride_a, int64_t *ipiv, int64_t stride_ipiv, int64_t batch_size,
@@ -299,10 +288,6 @@ DLL_EXPORT void getrf_batch(sycl::queue &queue, int64_t m, int64_t n, sycl::buff
299
288
  int64_t batch_size, sycl::buffer<std::complex<double>> &scratchpad,
300
289
  int64_t scratchpad_size);
301
290
 
302
- // getrfnp: scratchpad size query
303
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
304
- int64_t getrfnp_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t lda);
305
-
306
291
  // getrfnp: USM API
307
292
  DLL_EXPORT sycl::event getrfnp(sycl::queue &queue, int64_t m, int64_t n, std::complex<float> *a, int64_t lda,
308
293
  std::complex<float> *scratchpad, int64_t scratchpad_size,
@@ -325,10 +310,6 @@ DLL_EXPORT void getrfnp(sycl::queue &queue, int64_t m, int64_t n, sycl::buffer<f
325
310
  DLL_EXPORT void getrfnp(sycl::queue &queue, int64_t m, int64_t n, sycl::buffer<std::complex<double>> &a, int64_t lda,
326
311
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
327
312
 
328
- // getrfnp_batch_group: scratchpad size query
329
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
330
- int64_t getrfnp_batch_scratchpad_size(sycl::queue &queue, int64_t* m, int64_t* n, int64_t* lda, int64_t group_count,
331
- int64_t* group_sizes);
332
313
 
333
314
  // getrfnp_batch_group: USM API
334
315
  DLL_EXPORT sycl::event getrfnp_batch(sycl::queue &queue, int64_t *m, int64_t *n, std::complex<float> **a, int64_t *lda,
@@ -344,11 +325,6 @@ DLL_EXPORT sycl::event getrfnp_batch(sycl::queue &queue, int64_t *m, int64_t *n,
344
325
  int64_t group_count, int64_t *group_sizes, std::complex<double> *scratchpad,
345
326
  int64_t scratchpad_size, const std::vector<sycl::event> &event_list = {});
346
327
 
347
- // getrfnp_batch_strided: scratchpad size query
348
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
349
- int64_t getrfnp_batch_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t lda, int64_t stride_a,
350
- int64_t batch_size);
351
-
352
328
  // getrfnp_batch_strided: USM API
353
329
  DLL_EXPORT sycl::event getrfnp_batch(sycl::queue &queue, int64_t m, int64_t n, std::complex<float> *a, int64_t lda,
354
330
  int64_t stride_a, int64_t batch_size, std::complex<float> *scratchpad,
@@ -377,10 +353,6 @@ DLL_EXPORT void getrfnp_batch(sycl::queue &queue, int64_t m, int64_t n, sycl::bu
377
353
  int64_t lda, int64_t stride_a, int64_t batch_size,
378
354
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
379
355
 
380
- // getri: scratchpad size query
381
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
382
- int64_t getri_scratchpad_size(sycl::queue &queue, int64_t n, int64_t lda);
383
-
384
356
  // getri: USM API
385
357
  DLL_EXPORT sycl::event getri(sycl::queue &queue, int64_t n, std::complex<float> *a, int64_t lda, int64_t *ipiv,
386
358
  std::complex<float> *scratchpad, int64_t scratchpad_size,
@@ -405,11 +377,6 @@ DLL_EXPORT void getri(sycl::queue &queue, int64_t n, sycl::buffer<std::complex<d
405
377
  sycl::buffer<int64_t> &ipiv, sycl::buffer<std::complex<double>> &scratchpad,
406
378
  int64_t scratchpad_size);
407
379
 
408
- // getri_oop_batch_strided: scratchpad size query
409
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
410
- int64_t getri_batch_scratchpad_size(sycl::queue &queue, int64_t n, int64_t lda, int64_t stride_a,
411
- int64_t stride_ipiv, int64_t ldainv, int64_t stride_ainv, int64_t batch_size);
412
-
413
380
  // getri_oop_batch_strided: USM API
414
381
  DLL_EXPORT sycl::event getri_batch(sycl::queue &queue, int64_t n, std::complex<float> *a, int64_t lda,
415
382
  int64_t stride_a, int64_t *ipiv, int64_t stride_ipiv, std::complex<float> *ainv,
@@ -452,11 +419,6 @@ DLL_EXPORT void getri_batch(sycl::queue &queue, int64_t n, sycl::buffer<std::com
452
419
  int64_t batch_size, sycl::buffer<std::complex<double>> &scratchpad,
453
420
  int64_t scratchpad_size);
454
421
 
455
- // getrs: scratchpad size query
456
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
457
- int64_t getrs_scratchpad_size(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t n, int64_t nrhs, int64_t lda,
458
- int64_t ldb);
459
-
460
422
  // getrs: USM API
461
423
  DLL_EXPORT sycl::event getrs(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t n, int64_t nrhs,
462
424
  std::complex<float> *a, int64_t lda, int64_t *ipiv, std::complex<float> *b, int64_t ldb,
@@ -489,12 +451,6 @@ DLL_EXPORT void getrs(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t
489
451
  sycl::buffer<std::complex<double>> &b, int64_t ldb,
490
452
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
491
453
 
492
- // getrs_batch_strided: scratchpad size query
493
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
494
- int64_t getrs_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t n, int64_t nrhs,
495
- int64_t lda, int64_t stride_a, int64_t stride_ipiv, int64_t ldb, int64_t stride_b,
496
- int64_t batch_size);
497
-
498
454
  // getrs_batch_strided: USM API
499
455
  DLL_EXPORT sycl::event getrs_batch(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t n, int64_t nrhs,
500
456
  std::complex<float> *a, int64_t lda, int64_t stride_a, int64_t *ipiv,
@@ -538,11 +494,6 @@ DLL_EXPORT void getrs_batch(sycl::queue &queue, oneapi::mkl::transpose trans, in
538
494
  int64_t batch_size, sycl::buffer<std::complex<double>> &scratchpad,
539
495
  int64_t scratchpad_size);
540
496
 
541
- // getrsnp_batch_strided: scratchpad size query
542
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
543
- int64_t getrsnp_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t n, int64_t nrhs,
544
- int64_t lda, int64_t stride_a, int64_t ldb, int64_t stride_b, int64_t batch_size);
545
-
546
497
  // getrsnp_batch_strided: USM API
547
498
  DLL_EXPORT sycl::event getrsnp_batch(sycl::queue &queue, oneapi::mkl::transpose trans, int64_t n, int64_t nrhs,
548
499
  std::complex<float> *a, int64_t lda, int64_t stride_a, std::complex<float> *b,
@@ -580,11 +531,6 @@ DLL_EXPORT void getrsnp_batch(sycl::queue &queue, oneapi::mkl::transpose trans,
580
531
  sycl::buffer<std::complex<double>> &b, int64_t ldb, int64_t stride_b, int64_t batch_size,
581
532
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
582
533
 
583
- // heev: scratchpad size query
584
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
585
- int64_t heev_scratchpad_size(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::uplo uplo, int64_t n,
586
- int64_t lda);
587
-
588
534
  // heev: USM API
589
535
  DLL_EXPORT sycl::event heev(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::uplo uplo, int64_t n,
590
536
  std::complex<float> *a, int64_t lda, float *w, std::complex<float> *scratchpad,
@@ -601,11 +547,6 @@ DLL_EXPORT void heev(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::u
601
547
  sycl::buffer<std::complex<double>> &a, int64_t lda, sycl::buffer<double> &w,
602
548
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
603
549
 
604
- // heevd: scratchpad size query
605
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
606
- int64_t heevd_scratchpad_size(sycl::queue &queue, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo, int64_t n,
607
- int64_t lda);
608
-
609
550
  // heevd: USM API
610
551
  DLL_EXPORT sycl::event heevd(sycl::queue &queue, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo, int64_t n,
611
552
  std::complex<float> *a, int64_t lda, float *w, std::complex<float> *scratchpad,
@@ -622,13 +563,6 @@ DLL_EXPORT void heevd(sycl::queue &queue, oneapi::mkl::job jobz, oneapi::mkl::up
622
563
  sycl::buffer<std::complex<double>> &a, int64_t lda, sycl::buffer<double> &w,
623
564
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
624
565
 
625
- // heevx: scratchpad size query
626
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
627
- int64_t heevx_scratchpad_size(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
628
- oneapi::mkl::uplo uplo, int64_t n, int64_t lda, typename fp_type::value_type vl,
629
- typename fp_type::value_type vu, int64_t il, int64_t iu,
630
- typename fp_type::value_type abstol, int64_t ldz);
631
-
632
566
  // heevx: USM API
633
567
  DLL_EXPORT sycl::event heevx(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
634
568
  oneapi::mkl::uplo uplo, int64_t n, std::complex<float> *a, int64_t lda, float vl, float vu,
@@ -653,11 +587,6 @@ DLL_EXPORT void heevx(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::
653
587
  sycl::buffer<std::complex<double>> &z, int64_t ldz,
654
588
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
655
589
 
656
- // hegvd: scratchpad size query
657
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
658
- int64_t hegvd_scratchpad_size(sycl::queue &queue, int64_t itype, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo,
659
- int64_t n, int64_t lda, int64_t ldb);
660
-
661
590
  // hegvd: USM API
662
591
  DLL_EXPORT sycl::event hegvd(sycl::queue &queue, int64_t itype, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo,
663
592
  int64_t n, std::complex<float> *a, int64_t lda, std::complex<float> *b, int64_t ldb,
@@ -678,13 +607,6 @@ DLL_EXPORT void hegvd(sycl::queue &queue, int64_t itype, oneapi::mkl::job jobz,
678
607
  int64_t ldb, sycl::buffer<double> &w, sycl::buffer<std::complex<double>> &scratchpad,
679
608
  int64_t scratchpad_size);
680
609
 
681
- // hegvx: scratchpad size query
682
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
683
- int64_t hegvx_scratchpad_size(sycl::queue &queue, int64_t itype, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
684
- oneapi::mkl::uplo uplo, int64_t n, int64_t lda, int64_t ldb,
685
- typename fp_type::value_type vl, typename fp_type::value_type vu, int64_t il, int64_t iu,
686
- typename fp_type::value_type abstol, int64_t ldz);
687
-
688
610
  // hegvx: USM API
689
611
  DLL_EXPORT sycl::event hegvx(sycl::queue &queue, int64_t itype, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
690
612
  oneapi::mkl::uplo uplo, int64_t n, std::complex<float> *a, int64_t lda,
@@ -713,10 +635,6 @@ DLL_EXPORT void hegvx(sycl::queue &queue, int64_t itype, oneapi::mkl::compz jobz
713
635
  sycl::buffer<std::complex<double>> &z, int64_t ldz,
714
636
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
715
637
 
716
- // hetrd: scratchpad size query
717
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
718
- int64_t hetrd_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, int64_t n, int64_t lda);
719
-
720
638
  // hetrd: USM API
721
639
  DLL_EXPORT sycl::event hetrd(sycl::queue &queue, oneapi::mkl::uplo uplo, int64_t n, std::complex<float> *a, int64_t lda,
722
640
  float *d, float *e, std::complex<float> *tau, std::complex<float> *scratchpad,
@@ -741,20 +659,12 @@ DLL_EXPORT sycl::event hetrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::in
741
659
  DLL_EXPORT sycl::event hetrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::complex<double> *a, std::int64_t lda, std::int64_t *ipiv, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
742
660
  DLL_EXPORT void hetrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::int64_t> &ipiv, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
743
661
  DLL_EXPORT void hetrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::int64_t> &ipiv, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
744
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
745
- std::int64_t hetrf_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda);
746
662
 
747
663
  // orgbr
748
664
  DLL_EXPORT sycl::event orgbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, float *a, std::int64_t lda, float *tau, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
749
665
  DLL_EXPORT sycl::event orgbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, double *a, std::int64_t lda, double *tau, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
750
666
  DLL_EXPORT void orgbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<float> &a, std::int64_t lda, sycl::buffer<float> &tau, sycl::buffer<float> &scratchpad, std::int64_t scratchpad_size);
751
667
  DLL_EXPORT void orgbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &tau, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
752
- template <typename data_t, oneapi::mkl::lapack::internal::is_real_floating_point<data_t> = nullptr>
753
- std::int64_t orgbr_scratchpad_size(sycl::queue &queue, oneapi::mkl::generate vect, std::int64_t m, std::int64_t n, std::int64_t k, std::int64_t lda);
754
-
755
- // orgqr: scratchpad size query
756
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
757
- int64_t orgqr_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t k, int64_t lda);
758
668
 
759
669
  // orgqr: USM API
760
670
  DLL_EXPORT sycl::event orgqr(sycl::queue &queue, int64_t m, int64_t n, int64_t k, double *a, int64_t lda, double *tau,
@@ -770,11 +680,6 @@ DLL_EXPORT void orgqr(sycl::queue &queue, int64_t m, int64_t n, int64_t k, sycl:
770
680
  DLL_EXPORT void orgqr(sycl::queue &queue, int64_t m, int64_t n, int64_t k, sycl::buffer<float> &a, int64_t lda,
771
681
  sycl::buffer<float> &tau, sycl::buffer<float> &scratchpad, int64_t scratchpad_size);
772
682
 
773
- // ormqr: scratchpad size query
774
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
775
- int64_t ormqr_scratchpad_size(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, int64_t m,
776
- int64_t n, int64_t k, int64_t lda, int64_t ldc);
777
-
778
683
  // ormqr: USM API
779
684
  DLL_EXPORT sycl::event ormqr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, int64_t m,
780
685
  int64_t n, int64_t k, double *a, int64_t lda, double *tau, double *c, int64_t ldc,
@@ -793,10 +698,6 @@ DLL_EXPORT void ormqr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::t
793
698
  int64_t k, sycl::buffer<float> &a, int64_t lda, sycl::buffer<float> &tau, sycl::buffer<float> &c,
794
699
  int64_t ldc, sycl::buffer<float> &scratchpad, int64_t scratchpad_size);
795
700
 
796
- // steqr: scratchpad size query
797
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
798
- int64_t steqr_scratchpad_size(sycl::queue &queue, oneapi::mkl::compz compz, int64_t n, int64_t ldz);
799
-
800
701
  // steqr: USM API
801
702
  DLL_EXPORT sycl::event steqr(sycl::queue &queue, oneapi::mkl::compz compz, int64_t n, float *d, float *e,
802
703
  std::complex<float> *z, int64_t ldz, std::complex<float> *scratchpad,
@@ -825,11 +726,6 @@ DLL_EXPORT void steqr(sycl::queue &queue, oneapi::mkl::compz compz, int64_t n, s
825
726
  sycl::buffer<double> &e, sycl::buffer<std::complex<double>> &z, int64_t ldz,
826
727
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
827
728
 
828
- // syev: scratchpad size query
829
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
830
- int64_t syev_scratchpad_size(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::uplo uplo, int64_t n,
831
- int64_t lda);
832
-
833
729
  // syev: USM API
834
730
  DLL_EXPORT sycl::event syev(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::uplo uplo, int64_t n, double *a,
835
731
  int64_t lda, double *w, double *scratchpad, int64_t scratchpad_size,
@@ -846,11 +742,6 @@ DLL_EXPORT void syev(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::u
846
742
  sycl::buffer<float> &a, int64_t lda, sycl::buffer<float> &w, sycl::buffer<float> &scratchpad,
847
743
  int64_t scratchpad_size);
848
744
 
849
- // syevd: scratchpad size query
850
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
851
- int64_t syevd_scratchpad_size(sycl::queue &queue, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo, int64_t n,
852
- int64_t lda);
853
-
854
745
  // syevd: USM API
855
746
  DLL_EXPORT sycl::event syevd(sycl::queue &queue, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo, int64_t n, double *a,
856
747
  int64_t lda, double *w, double *scratchpad, int64_t scratchpad_size,
@@ -867,12 +758,6 @@ DLL_EXPORT void syevd(sycl::queue &queue, oneapi::mkl::job jobz, oneapi::mkl::up
867
758
  sycl::buffer<float> &a, int64_t lda, sycl::buffer<float> &w, sycl::buffer<float> &scratchpad,
868
759
  int64_t scratchpad_size);
869
760
 
870
- // syevx: scratchpad size query
871
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
872
- int64_t syevx_scratchpad_size(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
873
- oneapi::mkl::uplo uplo, int64_t n, int64_t lda, fp_type vl, fp_type vu, int64_t il,
874
- int64_t iu, fp_type abstol, int64_t ldz);
875
-
876
761
  // syevx: USM API
877
762
  DLL_EXPORT sycl::event syevx(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
878
763
  oneapi::mkl::uplo uplo, int64_t n, double *a, int64_t lda, double vl, double vu,
@@ -894,11 +779,6 @@ DLL_EXPORT void syevx(sycl::queue &queue, oneapi::mkl::compz jobz, oneapi::mkl::
894
779
  float abstol, sycl::buffer<int64_t> &m, sycl::buffer<float> &w, sycl::buffer<float> &z,
895
780
  int64_t ldz, sycl::buffer<float> &scratchpad, int64_t scratchpad_size);
896
781
 
897
- // sygvd: scratchpad size query
898
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
899
- int64_t sygvd_scratchpad_size(sycl::queue &queue, int64_t itype, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo,
900
- int64_t n, int64_t lda, int64_t ldb);
901
-
902
782
  // sygvd: USM API
903
783
  DLL_EXPORT sycl::event sygvd(sycl::queue &queue, int64_t itype, oneapi::mkl::job jobz, oneapi::mkl::uplo uplo,
904
784
  int64_t n, double *a, int64_t lda, double *b, int64_t ldb, double *w, double *scratchpad,
@@ -915,12 +795,6 @@ DLL_EXPORT void sygvd(sycl::queue &queue, int64_t itype, oneapi::mkl::job jobz,
915
795
  sycl::buffer<float> &a, int64_t lda, sycl::buffer<float> &b, int64_t ldb, sycl::buffer<float> &w,
916
796
  sycl::buffer<float> &scratchpad, int64_t scratchpad_size);
917
797
 
918
- // sygvx: scratchpad size query
919
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
920
- int64_t sygvx_scratchpad_size(sycl::queue &queue, int64_t itype, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
921
- oneapi::mkl::uplo uplo, int64_t n, int64_t lda, int64_t ldb, fp_type vl, fp_type vu,
922
- int64_t il, int64_t iu, fp_type abstol, int64_t ldz);
923
-
924
798
  // sygvx: USM API
925
799
  DLL_EXPORT sycl::event sygvx(sycl::queue &queue, int64_t itype, oneapi::mkl::compz jobz, oneapi::mkl::rangev range,
926
800
  oneapi::mkl::uplo uplo, int64_t n, double *a, int64_t lda, double *b, int64_t ldb,
@@ -945,10 +819,6 @@ DLL_EXPORT void sygvx(sycl::queue &queue, int64_t itype, oneapi::mkl::compz jobz
945
819
  sycl::buffer<float> &w, sycl::buffer<float> &z, int64_t ldz, sycl::buffer<float> &scratchpad,
946
820
  int64_t scratchpad_size);
947
821
 
948
- // sytrd: scratchpad size query
949
- template <typename fp_type, internal::is_real_floating_point<fp_type> = nullptr>
950
- int64_t sytrd_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, int64_t n, int64_t lda);
951
-
952
822
  // sytrd: USM API
953
823
  DLL_EXPORT sycl::event sytrd(sycl::queue &queue, oneapi::mkl::uplo uplo, int64_t n, double *a, int64_t lda, double *d,
954
824
  double *e, double *tau, double *scratchpad, int64_t scratchpad_size,
@@ -965,11 +835,6 @@ DLL_EXPORT void sytrd(sycl::queue &queue, oneapi::mkl::uplo uplo, int64_t n, syc
965
835
  sycl::buffer<float> &d, sycl::buffer<float> &e, sycl::buffer<float> &tau,
966
836
  sycl::buffer<float> &scratchpad, int64_t scratchpad_size);
967
837
 
968
- // trtrs: scratchpad size query
969
- template <typename fp_type, internal::is_floating_point<fp_type> = nullptr>
970
- int64_t trtrs_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans,
971
- oneapi::mkl::diag diag, int64_t n, int64_t nrhs, int64_t lda, int64_t ldb);
972
-
973
838
  // trtrs: USM API
974
839
  DLL_EXPORT sycl::event trtrs(sycl::queue &queue, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans,
975
840
  oneapi::mkl::diag diag, int64_t n, int64_t nrhs, std::complex<float> *a, int64_t lda,
@@ -1009,12 +874,6 @@ DLL_EXPORT sycl::event ungbr(sycl::queue &queue, oneapi::mkl::generate vec, std:
1009
874
  DLL_EXPORT sycl::event ungbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, std::complex<double> *a, std::int64_t lda, std::complex<double> *tau, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1010
875
  DLL_EXPORT void ungbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &tau, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1011
876
  DLL_EXPORT void ungbr(sycl::queue &queue, oneapi::mkl::generate vec, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &tau, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1012
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
1013
- std::int64_t ungbr_scratchpad_size(sycl::queue &queue, oneapi::mkl::generate vect, std::int64_t m, std::int64_t n, std::int64_t k, std::int64_t lda);
1014
-
1015
- // ungqr: scratchpad size query
1016
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
1017
- int64_t ungqr_scratchpad_size(sycl::queue &queue, int64_t m, int64_t n, int64_t k, int64_t lda);
1018
877
 
1019
878
  // ungqr: USM API
1020
879
  DLL_EXPORT sycl::event ungqr(sycl::queue &queue, int64_t m, int64_t n, int64_t k, std::complex<float> *a, int64_t lda,
@@ -1032,11 +891,6 @@ DLL_EXPORT void ungqr(sycl::queue &queue, int64_t m, int64_t n, int64_t k, sycl:
1032
891
  int64_t lda, sycl::buffer<std::complex<double>> &tau,
1033
892
  sycl::buffer<std::complex<double>> &scratchpad, int64_t scratchpad_size);
1034
893
 
1035
- // unmqr: scratchpad size query
1036
- template <typename fp_type, internal::is_complex_floating_point<fp_type> = nullptr>
1037
- int64_t unmqr_scratchpad_size(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, int64_t m,
1038
- int64_t n, int64_t k, int64_t lda, int64_t ldc);
1039
-
1040
894
  // unmqr: USM API
1041
895
  DLL_EXPORT sycl::event unmqr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, int64_t m,
1042
896
  int64_t n, int64_t k, std::complex<float> *a, int64_t lda, std::complex<float> *tau,
@@ -1066,24 +920,18 @@ DLL_EXPORT void gerqf(sycl::queue &queue, std::int64_t m, std::int64_t n, sycl::
1066
920
  DLL_EXPORT void gerqf(sycl::queue &queue, std::int64_t m, std::int64_t n, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &tau, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
1067
921
  DLL_EXPORT void gerqf(sycl::queue &queue, std::int64_t m, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &tau, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1068
922
  DLL_EXPORT void gerqf(sycl::queue &queue, std::int64_t m, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &tau, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1069
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1070
- std::int64_t gerqf_scratchpad_size(sycl::queue &queue, std::int64_t m, std::int64_t n, std::int64_t lda);
1071
923
 
1072
924
  // ormrq
1073
925
  DLL_EXPORT sycl::event ormrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, float *a, std::int64_t lda, float *tau, float *c, std::int64_t ldc, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1074
926
  DLL_EXPORT sycl::event ormrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, double *a, std::int64_t lda, double *tau, double *c, std::int64_t ldc, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1075
927
  DLL_EXPORT void ormrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<float> &a, std::int64_t lda, sycl::buffer<float> &tau, sycl::buffer<float> &c, std::int64_t ldc, sycl::buffer<float> &scratchpad, std::int64_t scratchpad_size);
1076
928
  DLL_EXPORT void ormrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &tau, sycl::buffer<double> &c, std::int64_t ldc, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
1077
- template <typename data_t, oneapi::mkl::lapack::internal::is_real_floating_point<data_t> = nullptr>
1078
- std::int64_t ormrq_scratchpad_size(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, std::int64_t lda, std::int64_t ldc);
1079
929
 
1080
930
  // unmrq
1081
931
  DLL_EXPORT sycl::event unmrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, std::complex<float> *a, std::int64_t lda, std::complex<float> *tau, std::complex<float> *c, std::int64_t ldc, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1082
932
  DLL_EXPORT sycl::event unmrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, std::complex<double> *a, std::int64_t lda, std::complex<double> *tau, std::complex<double> *c, std::int64_t ldc, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1083
933
  DLL_EXPORT void unmrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &tau, sycl::buffer<std::complex<float>> &c, std::int64_t ldc, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1084
934
  DLL_EXPORT void unmrq(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &tau, sycl::buffer<std::complex<double>> &c, std::int64_t ldc, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1085
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
1086
- std::int64_t unmrq_scratchpad_size(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t k, std::int64_t lda, std::int64_t ldc);
1087
935
 
1088
936
  // sytrf
1089
937
  DLL_EXPORT sycl::event sytrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, float *a, std::int64_t lda, std::int64_t *ipiv, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
@@ -1094,40 +942,36 @@ DLL_EXPORT void sytrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n
1094
942
  DLL_EXPORT void sytrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<std::int64_t> &ipiv, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
1095
943
  DLL_EXPORT void sytrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::int64_t> &ipiv, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1096
944
  DLL_EXPORT void sytrf(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::int64_t> &ipiv, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1097
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1098
- std::int64_t sytrf_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda);
1099
945
 
1100
946
  // orgtr
1101
947
  DLL_EXPORT sycl::event orgtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, float *a, std::int64_t lda, float *tau, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1102
948
  DLL_EXPORT sycl::event orgtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, double *a, std::int64_t lda, double *tau, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1103
949
  DLL_EXPORT void orgtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<float> &a, std::int64_t lda, sycl::buffer<float> &tau, sycl::buffer<float> &scratchpad, std::int64_t scratchpad_size);
1104
950
  DLL_EXPORT void orgtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &tau, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
1105
- template <typename data_t, oneapi::mkl::lapack::internal::is_real_floating_point<data_t> = nullptr>
1106
- std::int64_t orgtr_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda);
1107
951
 
1108
952
  // ungtr
1109
953
  DLL_EXPORT sycl::event ungtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::complex<float> *a, std::int64_t lda, std::complex<float> *tau, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1110
954
  DLL_EXPORT sycl::event ungtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::complex<double> *a, std::int64_t lda, std::complex<double> *tau, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1111
955
  DLL_EXPORT void ungtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &tau, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1112
956
  DLL_EXPORT void ungtr(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &tau, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1113
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
1114
- std::int64_t ungtr_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda);
1115
957
 
1116
958
  // ormtr
1117
959
  DLL_EXPORT sycl::event ormtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, float *a, std::int64_t lda, float *tau, float *c, std::int64_t ldc, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1118
960
  DLL_EXPORT sycl::event ormtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, double *a, std::int64_t lda, double *tau, double *c, std::int64_t ldc, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1119
961
  DLL_EXPORT void ormtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, sycl::buffer<float> &a, std::int64_t lda, sycl::buffer<float> &tau, sycl::buffer<float> &c, std::int64_t ldc, sycl::buffer<float> &scratchpad, std::int64_t scratchpad_size);
1120
962
  DLL_EXPORT void ormtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, sycl::buffer<double> &a, std::int64_t lda, sycl::buffer<double> &tau, sycl::buffer<double> &c, std::int64_t ldc, sycl::buffer<double> &scratchpad, std::int64_t scratchpad_size);
1121
- template <typename data_t, oneapi::mkl::lapack::internal::is_real_floating_point<data_t> = nullptr>
1122
- std::int64_t ormtr_scratchpad_size(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t lda, std::int64_t ldc);
1123
963
 
1124
964
  // unmtr
1125
965
  DLL_EXPORT sycl::event unmtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::complex<float> *a, std::int64_t lda, std::complex<float> *tau, std::complex<float> *c, std::int64_t ldc, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1126
966
  DLL_EXPORT sycl::event unmtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::complex<double> *a, std::int64_t lda, std::complex<double> *tau, std::complex<double> *c, std::int64_t ldc, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1127
967
  DLL_EXPORT void unmtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, sycl::buffer<std::complex<float>> &a, std::int64_t lda, sycl::buffer<std::complex<float>> &tau, sycl::buffer<std::complex<float>> &c, std::int64_t ldc, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1128
968
  DLL_EXPORT void unmtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, sycl::buffer<std::complex<double>> &a, std::int64_t lda, sycl::buffer<std::complex<double>> &tau, sycl::buffer<std::complex<double>> &c, std::int64_t ldc, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1129
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
1130
- std::int64_t unmtr_scratchpad_size(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo uplo, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t lda, std::int64_t ldc);
969
+
970
+ // gels
971
+ DLL_EXPORT sycl::event gels(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, float *a, std::int64_t lda, float *b, std::int64_t ldb, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
972
+ DLL_EXPORT sycl::event gels(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, double *a, std::int64_t lda, double *b, std::int64_t ldb, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
973
+ DLL_EXPORT sycl::event gels(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, std::complex<float> *a, std::int64_t lda, std::complex<float> *b, std::int64_t ldb, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
974
+ DLL_EXPORT sycl::event gels(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, std::complex<double> *a, std::int64_t lda, std::complex<double> *b, std::int64_t ldb, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1131
975
 
1132
976
  //
1133
977
  // DPC++ MKL LAPACK batch group API
@@ -1169,22 +1013,21 @@ DLL_EXPORT sycl::event orgqr_batch(sycl::queue &queue, std::int64_t *m, std::int
1169
1013
  DLL_EXPORT sycl::event ungqr_batch(sycl::queue &queue, std::int64_t *m, std::int64_t *n, std::int64_t *k, std::complex<float> **a, std::int64_t *lda, std::complex<float> **tau, std::int64_t group_count, std::int64_t *group_sizes, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1170
1014
  DLL_EXPORT sycl::event ungqr_batch(sycl::queue &queue, std::int64_t *m, std::int64_t *n, std::int64_t *k, std::complex<double> **a, std::int64_t *lda, std::complex<double> **tau, std::int64_t group_count, std::int64_t *group_sizes, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1171
1015
 
1172
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1173
- std::int64_t potrf_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo *uplo, std::int64_t *n, std::int64_t *lda, std::int64_t group_count, std::int64_t *group_sizes);
1174
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1175
- std::int64_t potrs_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo *uplo, std::int64_t *n, std::int64_t *nrhs, std::int64_t *lda, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes);
1176
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1177
- std::int64_t geinv_batch_scratchpad_size(sycl::queue &queue, std::int64_t *n, std::int64_t *lda, std::int64_t group_count, std::int64_t *group_sizes);
1178
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1179
- std::int64_t getrs_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::transpose *trans, std::int64_t *n, std::int64_t *nrhs, std::int64_t *lda, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes);
1180
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1181
- std::int64_t getri_batch_scratchpad_size(sycl::queue &queue, std::int64_t *n, std::int64_t *lda, std::int64_t group_count, std::int64_t *group_sizes);
1182
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1183
- std::int64_t geqrf_batch_scratchpad_size(sycl::queue &queue, std::int64_t *m, std::int64_t *n, std::int64_t *lda, std::int64_t group_count, std::int64_t *group_sizes);
1184
- template <typename data_t, oneapi::mkl::lapack::internal::is_real_floating_point<data_t> = nullptr>
1185
- std::int64_t orgqr_batch_scratchpad_size(sycl::queue &queue, std::int64_t *m, std::int64_t *n, std::int64_t *k, std::int64_t *lda, std::int64_t group_count, std::int64_t *group_sizes);
1186
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
1187
- std::int64_t ungqr_batch_scratchpad_size(sycl::queue &queue, std::int64_t *m, std::int64_t *n, std::int64_t *k, std::int64_t *lda, std::int64_t group_count, std::int64_t *group_sizes);
1016
+ DLL_EXPORT sycl::event ormqr_batch(sycl::queue &queue, oneapi::mkl::side *side, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *k, float **a, std::int64_t *lda, float **tau, float **c, std::int64_t *ldc, std::int64_t group_count, std::int64_t *group_sizes, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1017
+ DLL_EXPORT sycl::event ormqr_batch(sycl::queue &queue, oneapi::mkl::side *side, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *k, double **a, std::int64_t *lda, double **tau, double **c, std::int64_t *ldc, std::int64_t group_count, std::int64_t *group_sizes, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1018
+
1019
+ DLL_EXPORT sycl::event unmqr_batch(sycl::queue &queue, oneapi::mkl::side *side, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *k, std::complex<float> **a, std::int64_t *lda, std::complex<float> **tau, std::complex<float> **c, std::int64_t *ldc, std::int64_t group_count, std::int64_t *group_sizes, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1020
+ DLL_EXPORT sycl::event unmqr_batch(sycl::queue &queue, oneapi::mkl::side *side, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *k, std::complex<double> **a, std::int64_t *lda, std::complex<double> **tau, std::complex<double> **c, std::int64_t *ldc, std::int64_t group_count, std::int64_t *group_sizes, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1021
+
1022
+ DLL_EXPORT sycl::event trtrs_batch(sycl::queue &queue, oneapi::mkl::uplo *uplo, oneapi::mkl::transpose *trans, oneapi::mkl::diag *diag, std::int64_t *n, std::int64_t *nrhs, float **a, std::int64_t *lda, float **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1023
+ DLL_EXPORT sycl::event trtrs_batch(sycl::queue &queue, oneapi::mkl::uplo *uplo, oneapi::mkl::transpose *trans, oneapi::mkl::diag *diag, std::int64_t *n, std::int64_t *nrhs, double **a, std::int64_t *lda, double **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1024
+ DLL_EXPORT sycl::event trtrs_batch(sycl::queue &queue, oneapi::mkl::uplo *uplo, oneapi::mkl::transpose *trans, oneapi::mkl::diag *diag, std::int64_t *n, std::int64_t *nrhs, std::complex<float> **a, std::int64_t *lda, std::complex<float> **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1025
+ DLL_EXPORT sycl::event trtrs_batch(sycl::queue &queue, oneapi::mkl::uplo *uplo, oneapi::mkl::transpose *trans, oneapi::mkl::diag *diag, std::int64_t *n, std::int64_t *nrhs, std::complex<double> **a, std::int64_t *lda, std::complex<double> **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1026
+
1027
+ DLL_EXPORT sycl::event gels_batch(sycl::queue &queue, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *nrhs, float **a, std::int64_t *lda, float **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, float *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1028
+ DLL_EXPORT sycl::event gels_batch(sycl::queue &queue, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *nrhs, double **a, std::int64_t *lda, double **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, double *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1029
+ DLL_EXPORT sycl::event gels_batch(sycl::queue &queue, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *nrhs, std::complex<float> **a, std::int64_t *lda,std::complex<float> **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, std::complex<float> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1030
+ DLL_EXPORT sycl::event gels_batch(sycl::queue &queue, oneapi::mkl::transpose *trans, std::int64_t *m, std::int64_t *n, std::int64_t *nrhs, std::complex<double> **a, std::int64_t *lda, std::complex<double> **b, std::int64_t *ldb, std::int64_t group_count, std::int64_t *group_sizes, std::complex<double> *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {});
1188
1031
 
1189
1032
  //
1190
1033
  // DPC++ MKL LAPACK batch stride API
@@ -1245,87 +1088,8 @@ DLL_EXPORT void gels_batch(sycl::queue &queue, oneapi::mkl::transpose trans, std
1245
1088
  DLL_EXPORT void gels_batch(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, sycl::buffer<std::complex<float>> &a, std::int64_t lda, std::int64_t stridea, sycl::buffer<std::complex<float>> &b, std::int64_t ldb, std::int64_t strideb, std::int64_t batchsize, sycl::buffer<std::complex<float>> &scratchpad, std::int64_t scratchpad_size);
1246
1089
  DLL_EXPORT void gels_batch(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, sycl::buffer<std::complex<double>> &a, std::int64_t lda, std::int64_t stridea, sycl::buffer<std::complex<double>> &b, std::int64_t ldb, std::int64_t strideb, std::int64_t batchsize, sycl::buffer<std::complex<double>> &scratchpad, std::int64_t scratchpad_size);
1247
1090
 
1248
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1249
- std::int64_t potrf_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t lda, std::int64_t stride_a, std::int64_t batch_size);
1250
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1251
- std::int64_t potrs_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::uplo uplo, std::int64_t n, std::int64_t nrhs, std::int64_t lda, std::int64_t stride_a, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size);
1252
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1253
- std::int64_t geqrf_batch_scratchpad_size(sycl::queue &queue, std::int64_t m, std::int64_t n, std::int64_t lda, std::int64_t stride_a, std::int64_t stride_tau, std::int64_t batch_size);
1254
- template <typename data_t, oneapi::mkl::lapack::internal::is_real_floating_point<data_t> = nullptr>
1255
- std::int64_t orgqr_batch_scratchpad_size(sycl::queue &queue, std::int64_t m, std::int64_t n, std::int64_t k, std::int64_t lda, std::int64_t stride_a, std::int64_t stride_tau, std::int64_t batch_size);
1256
- template <typename data_t, oneapi::mkl::lapack::internal::is_complex_floating_point<data_t> = nullptr>
1257
- std::int64_t ungqr_batch_scratchpad_size(sycl::queue &queue, std::int64_t m, std::int64_t n, std::int64_t k, std::int64_t lda, std::int64_t stride_a, std::int64_t stride_tau, std::int64_t batch_size);
1258
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1259
- std::int64_t getri_batch_scratchpad_size(sycl::queue &queue, std::int64_t n, std::int64_t lda, std::int64_t stride_a, std::int64_t stride_ipiv, std::int64_t batch_size);
1260
- template <typename data_t, oneapi::mkl::lapack::internal::is_floating_point<data_t> = nullptr>
1261
- std::int64_t gels_batch_scratchpad_size(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, std::int64_t nrhs, std::int64_t lda, std::int64_t stride_a, std::int64_t ldb, std::int64_t stride_b, std::int64_t batch_size);
1262
-
1263
- class DLL_EXPORT exception
1264
- {
1265
- public:
1266
- exception(mkl::exception *_ex, std::int64_t info, std::int64_t detail = 0) : _info(info), _detail(detail), _ex(_ex) {}
1267
- std::int64_t info() const { return _info; }
1268
- std::int64_t detail() const { return _detail; }
1269
- const char* what() const { return _ex->what(); }
1270
- private:
1271
- std::int64_t _info;
1272
- std::int64_t _detail;
1273
- mkl::exception *_ex;
1274
- };
1275
-
1276
- class DLL_EXPORT computation_error : public oneapi::mkl::computation_error, public oneapi::mkl::lapack::exception
1277
- {
1278
- public:
1279
- computation_error(const std::string &function, const std::string &info, std::int64_t code)
1280
- : oneapi::mkl::computation_error("lapack", function, info), oneapi::mkl::lapack::exception(this, code) {}
1281
- virtual ~computation_error();
1282
- using oneapi::mkl::computation_error::what;
1283
- };
1284
-
1285
- class DLL_EXPORT batch_error : public oneapi::mkl::batch_error, public oneapi::mkl::lapack::exception
1286
- {
1287
- public:
1288
- batch_error(const std::string &function, const std::string &info, std::int64_t num_errors, std::vector<std::int64_t> ids = {}, std::vector<std::exception_ptr> exceptions = {})
1289
- : oneapi::mkl::batch_error("lapack", function, info), oneapi::mkl::lapack::exception(this, num_errors), _ids(ids), _exceptions(exceptions) {}
1290
- virtual ~batch_error();
1291
- using oneapi::mkl::batch_error::what;
1292
- const std::vector<std::int64_t>& ids() const { return _ids; }
1293
- const std::vector<std::exception_ptr>& exceptions() const { return _exceptions; }
1294
- private:
1295
- std::vector<std::int64_t> _ids;
1296
- std::vector<std::exception_ptr> _exceptions;
1297
- };
1298
-
1299
- class DLL_EXPORT invalid_argument : public oneapi::mkl::invalid_argument, public oneapi::mkl::lapack::exception
1300
- {
1301
- public:
1302
- invalid_argument(const std::string &function, const std::string &info, std::int64_t arg_position = 0, std::int64_t detail = 0)
1303
- : oneapi::mkl::invalid_argument("lapack", function, info), oneapi::mkl::lapack::exception(this, arg_position, detail) {}
1304
- virtual ~invalid_argument();
1305
- using oneapi::mkl::invalid_argument::what;
1306
- };
1307
-
1308
- namespace internal
1309
- {
1310
- // auxilary typechecking templates
1311
- template<typename T>
1312
- struct enable_if<true,T> { using type = T; };
1313
-
1314
- template<> struct is_fp<float> { static constexpr bool value{true}; };
1315
- template<> struct is_fp<double> { static constexpr bool value{true}; };
1316
- template<> struct is_fp<std::complex<float>> { static constexpr bool value{true}; };
1317
- template<> struct is_fp<std::complex<double>> { static constexpr bool value{true}; };
1318
-
1319
- template<> struct is_rfp<float> { static constexpr bool value{true}; };
1320
- template<> struct is_rfp<double> { static constexpr bool value{true}; };
1321
-
1322
- template<> struct is_cfp<std::complex<float>> { static constexpr bool value{true}; };
1323
- template<> struct is_cfp<std::complex<double>> { static constexpr bool value{true}; };
1324
- }
1325
-
1326
- } //namespace lapack
1327
- } //namespace mkl
1091
+ } // namespace lapack
1092
+ } // namespace mkl
1328
1093
  } // namespace oneapi
1329
1094
 
1330
-
1331
- #endif // _LAPACK_HPP__
1095
+ #endif // _ONEAPI_MKL_LAPACK_LAPACK_HPP__