mkl_lapack_omp_variant.h 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. /*******************************************************************************
  2. * Copyright 2019-2022 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. ! Content:
  16. ! Intel(R) oneAPI Math Kernel Library (oneMKL) C interface for
  17. ! OpenMP offload for LAPACK
  18. !******************************************************************************/
  19. #ifndef _MKL_LAPACK_OMP_VARIANT_H_
  20. #define _MKL_LAPACK_OMP_VARIANT_H_
  21. #include "mkl_types.h"
  22. #include "mkl_omp_variant.h"
  23. #define MKL_LAPACK_OPENMP_OFFLOAD(name) MKL_VARIANT_NAME(lapack, name)
  24. #define MKL_LAPACK_DECLARE_VARIANT_50(variant_name,...) declare variant (MKL_LAPACK_OPENMP_OFFLOAD(variant_name)) match(construct={target variant dispatch}, device={arch(gen)})
  25. #define MKL_LAPACK_DECLARE_VARIANT_51(variant_name,...) declare variant (MKL_LAPACK_OPENMP_OFFLOAD(variant_name)) match(construct={dispatch}, device={arch(gen)}) append_args(interop(prefer_type("sycl"),targetsync)) adjust_args(need_device_ptr:__VA_ARGS__)
  26. # if (_OPENMP >= 202011)
  27. # define MKL_LAPACK_DECLARE_VARIANT(variant_name,...) MKL_LAPACK_DECLARE_VARIANT_51(variant_name,__VA_ARGS__)
  28. # else
  29. # define MKL_LAPACK_DECLARE_VARIANT(variant_name,...) MKL_LAPACK_DECLARE_VARIANT_50(variant_name,__VA_ARGS__)
  30. # endif
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif /* __cplusplus */
  34. void MKL_LAPACK_OPENMP_OFFLOAD(cgebrd)(const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
  35. float* d, float* e, MKL_Complex8* tauq, MKL_Complex8* taup, MKL_Complex8* work,
  36. const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  37. void MKL_LAPACK_OPENMP_OFFLOAD(dgebrd)(const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda, double* d,
  38. double* e, double* tauq, double* taup, double* work, const MKL_INT* lwork,
  39. MKL_INT* info, void* interop) NOTHROW;
  40. void MKL_LAPACK_OPENMP_OFFLOAD(sgebrd)(const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda, float* d,
  41. float* e, float* tauq, float* taup, float* work, const MKL_INT* lwork,
  42. MKL_INT* info, void* interop) NOTHROW;
  43. void MKL_LAPACK_OPENMP_OFFLOAD(zgebrd)(const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
  44. double* d, double* e, MKL_Complex16* tauq, MKL_Complex16* taup,
  45. MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  46. void MKL_LAPACK_OPENMP_OFFLOAD(cgesvd)(const char* jobu, const char* jobvt, const MKL_INT* m, const MKL_INT* n,
  47. MKL_Complex8* a, const MKL_INT* lda, float* s, MKL_Complex8* u,
  48. const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt, MKL_Complex8* work,
  49. const MKL_INT* lwork, float* rwork, MKL_INT* info, void* interop) NOTHROW;
  50. void MKL_LAPACK_OPENMP_OFFLOAD(zgesvd)(const char* jobu, const char* jobvt, const MKL_INT* m, const MKL_INT* n,
  51. MKL_Complex16* a, const MKL_INT* lda, double* s, MKL_Complex16* u,
  52. const MKL_INT* ldu, MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* work,
  53. const MKL_INT* lwork, double* rwork, MKL_INT* info, void* interop) NOTHROW;
  54. void MKL_LAPACK_OPENMP_OFFLOAD(dgesvd)(const char* jobu, const char* jobvt, const MKL_INT* m, const MKL_INT* n,
  55. double* a, const MKL_INT* lda, double* s, double* u, const MKL_INT* ldu,
  56. double* vt, const MKL_INT* ldvt, double* work, const MKL_INT* lwork,
  57. MKL_INT* info, void* interop) NOTHROW;
  58. void MKL_LAPACK_OPENMP_OFFLOAD(sgesvd)(const char* jobu, const char* jobvt, const MKL_INT* m, const MKL_INT* n,
  59. float* a, const MKL_INT* lda, float* s, float* u, const MKL_INT* ldu, float* vt,
  60. const MKL_INT* ldvt, float* work, const MKL_INT* lwork, MKL_INT* info,
  61. void* interop) NOTHROW;
  62. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrf_batch_strided)(const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
  63. const MKL_INT* lda, const MKL_INT* stride_a, MKL_INT* ipiv,
  64. const MKL_INT* stride_ipiv, const MKL_INT* batch_size,
  65. MKL_INT* info, void* interop) NOTHROW;
  66. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrf_batch_strided)(const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
  67. const MKL_INT* stride_a, MKL_INT* ipiv, const MKL_INT* stride_ipiv,
  68. const MKL_INT* batch_size, MKL_INT* info, void* interop) NOTHROW;
  69. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrf_batch_strided)(const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
  70. const MKL_INT* stride_a, MKL_INT* ipiv, const MKL_INT* stride_ipiv,
  71. const MKL_INT* batch_size, MKL_INT* info, void* interop) NOTHROW;
  72. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrf_batch_strided)(const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
  73. const MKL_INT* lda, const MKL_INT* stride_a, MKL_INT* ipiv,
  74. const MKL_INT* stride_ipiv, const MKL_INT* batch_size,
  75. MKL_INT* info, void* interop) NOTHROW;
  76. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrf_batch)(const MKL_INT* m, const MKL_INT* n, MKL_Complex8** a, const MKL_INT* lda,
  77. MKL_INT** ipiv, const MKL_INT* group_count, const MKL_INT* group_sizes,
  78. MKL_INT* info, void* interop) NOTHROW;
  79. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrf_batch)(const MKL_INT* m, const MKL_INT* n, double** a, const MKL_INT* lda,
  80. MKL_INT** ipiv, const MKL_INT* group_count, const MKL_INT* group_sizes,
  81. MKL_INT* info, void* interop) NOTHROW;
  82. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrf_batch)(const MKL_INT* m, const MKL_INT* n, float** a, const MKL_INT* lda,
  83. MKL_INT** ipiv, const MKL_INT* group_count, const MKL_INT* group_sizes,
  84. MKL_INT* info, void* interop) NOTHROW;
  85. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrf_batch)(const MKL_INT* m, const MKL_INT* n, MKL_Complex16** a, const MKL_INT* lda,
  86. MKL_INT** ipiv, const MKL_INT* group_count, const MKL_INT* group_sizes,
  87. MKL_INT* info, void* interop) NOTHROW;
  88. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrf)(const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
  89. MKL_INT* ipiv, MKL_INT* info, void* interop) NOTHROW;
  90. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrf)(const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* ipiv,
  91. MKL_INT* info, void* interop) NOTHROW;
  92. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrf)(const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
  93. MKL_INT* info, void* interop) NOTHROW;
  94. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrf)(const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
  95. MKL_INT* ipiv, MKL_INT* info, void* interop) NOTHROW;
  96. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrfnp_batch_strided)(const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
  97. const MKL_INT* lda, const MKL_INT* stride_a,
  98. const MKL_INT* batch_size, MKL_INT* info, void* interop) NOTHROW;
  99. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrfnp_batch_strided)(const MKL_INT* m, const MKL_INT* n, double* a,
  100. const MKL_INT* lda, const MKL_INT* stride_a,
  101. const MKL_INT* batch_size, MKL_INT* info, void* interop) NOTHROW;
  102. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrfnp_batch_strided)(const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
  103. const MKL_INT* stride_a, const MKL_INT* batch_size,
  104. MKL_INT* info, void* interop) NOTHROW;
  105. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrfnp_batch_strided)(const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
  106. const MKL_INT* lda, const MKL_INT* stride_a,
  107. const MKL_INT* batch_size, MKL_INT* info, void* interop) NOTHROW;
  108. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrfnp_batch)(const MKL_INT* m, const MKL_INT* n, MKL_Complex8** a, const MKL_INT* lda,
  109. const MKL_INT* group_count, const MKL_INT* group_sizes, MKL_INT* info,
  110. void* interop) NOTHROW;
  111. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrfnp_batch)(const MKL_INT* m, const MKL_INT* n, double** a, const MKL_INT* lda,
  112. const MKL_INT* group_count, const MKL_INT* group_sizes, MKL_INT* info,
  113. void* interop) NOTHROW;
  114. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrfnp_batch)(const MKL_INT* m, const MKL_INT* n, float** a, const MKL_INT* lda,
  115. const MKL_INT* group_count, const MKL_INT* group_sizes, MKL_INT* info,
  116. void* interop) NOTHROW;
  117. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrfnp_batch)(const MKL_INT* m, const MKL_INT* n, MKL_Complex16** a,
  118. const MKL_INT* lda, const MKL_INT* group_count,
  119. const MKL_INT* group_sizes, MKL_INT* info, void* interop) NOTHROW;
  120. void MKL_LAPACK_OPENMP_OFFLOAD(cgetri)(const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
  121. MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  122. void MKL_LAPACK_OPENMP_OFFLOAD(dgetri)(const MKL_INT* n, double* a, const MKL_INT* lda, const MKL_INT* ipiv,
  123. double* work, const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  124. void MKL_LAPACK_OPENMP_OFFLOAD(sgetri)(const MKL_INT* n, float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* work,
  125. const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  126. void MKL_LAPACK_OPENMP_OFFLOAD(zgetri)(const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
  127. MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  128. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrs)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
  129. const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
  130. MKL_INT* info, void* interop) NOTHROW;
  131. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrs)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs, const double* a,
  132. const MKL_INT* lda, const MKL_INT* ipiv, double* b, const MKL_INT* ldb,
  133. MKL_INT* info, void* interop) NOTHROW;
  134. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrs)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs, const float* a,
  135. const MKL_INT* lda, const MKL_INT* ipiv, float* b, const MKL_INT* ldb,
  136. MKL_INT* info, void* interop) NOTHROW;
  137. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrs)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
  138. const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
  139. MKL_INT* info, void* interop) NOTHROW;
  140. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrsnp_batch_strided)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
  141. const MKL_Complex8* a, const MKL_INT* lda,
  142. const MKL_INT* stride_a, MKL_Complex8* b, const MKL_INT* ldb,
  143. const MKL_INT* stride_b, const MKL_INT* batch_size,
  144. MKL_INT* info, void *interop) NOTHROW;
  145. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrsnp_batch_strided)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
  146. const double* a, const MKL_INT* lda, const MKL_INT* stride_a,
  147. double* b, const MKL_INT* ldb, const MKL_INT* stride_b,
  148. const MKL_INT* batch_size, MKL_INT* info, void *interop) NOTHROW;
  149. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrsnp_batch_strided)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
  150. const float* a, const MKL_INT* lda, const MKL_INT* stride_a,
  151. float* b, const MKL_INT* ldb, const MKL_INT* stride_b,
  152. const MKL_INT* batch_size, MKL_INT* info, void *interop) NOTHROW;
  153. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrsnp_batch_strided)(const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
  154. const MKL_Complex16* a, const MKL_INT* lda,
  155. const MKL_INT* stride_a, MKL_Complex16* b, const MKL_INT* ldb,
  156. const MKL_INT* stride_b, const MKL_INT* batch_size,
  157. MKL_INT* info, void *interop) NOTHROW;
  158. void MKL_LAPACK_OPENMP_OFFLOAD(cheev)(const char* jobz, const char* uplo, const MKL_INT* n, MKL_Complex8* a,
  159. const MKL_INT* lda, float* w, MKL_Complex8* work, const MKL_INT* lwork,
  160. float* rwork, MKL_INT* info, void* interop) NOTHROW;
  161. void MKL_LAPACK_OPENMP_OFFLOAD(zheev)(const char* jobz, const char* uplo, const MKL_INT* n, MKL_Complex16* a,
  162. const MKL_INT* lda, double* w, MKL_Complex16* work, const MKL_INT* lwork,
  163. double* rwork, MKL_INT* info, void* interop) NOTHROW;
  164. void MKL_LAPACK_OPENMP_OFFLOAD(cheevd)(const char* jobz, const char* uplo, const MKL_INT* n, MKL_Complex8* a,
  165. const MKL_INT* lda, float* w, MKL_Complex8* work, const MKL_INT* lwork,
  166. float* rwork, const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
  167. MKL_INT* info, void* interop) NOTHROW;
  168. void MKL_LAPACK_OPENMP_OFFLOAD(zheevd)(const char* jobz, const char* uplo, const MKL_INT* n, MKL_Complex16* a,
  169. const MKL_INT* lda, double* w, MKL_Complex16* work, const MKL_INT* lwork,
  170. double* rwork, const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
  171. MKL_INT* info, void* interop) NOTHROW;
  172. void MKL_LAPACK_OPENMP_OFFLOAD(cheevx)(const char* jobz, const char* range, const char* uplo, const MKL_INT* n,
  173. MKL_Complex8* a, const MKL_INT* lda, const float* vl, const float* vu,
  174. const MKL_INT* il, const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
  175. MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
  176. float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info,
  177. void* interop) NOTHROW;
  178. void MKL_LAPACK_OPENMP_OFFLOAD(zheevx)(const char* jobz, const char* range, const char* uplo, const MKL_INT* n,
  179. MKL_Complex16* a, const MKL_INT* lda, const double* vl, const double* vu,
  180. const MKL_INT* il, const MKL_INT* iu, const double* abstol, MKL_INT* m,
  181. double* w, MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
  182. const MKL_INT* lwork, double* rwork, MKL_INT* iwork, MKL_INT* ifail,
  183. MKL_INT* info, void* interop) NOTHROW;
  184. void MKL_LAPACK_OPENMP_OFFLOAD(chegvd)(const MKL_INT* itype, const char* jobz, const char* uplo, const MKL_INT* n,
  185. MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
  186. float* w, MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
  187. const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info,
  188. void* interop) NOTHROW;
  189. void MKL_LAPACK_OPENMP_OFFLOAD(zhegvd)(const MKL_INT* itype, const char* jobz, const char* uplo, const MKL_INT* n,
  190. MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
  191. double* w, MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
  192. const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info,
  193. void* interop) NOTHROW;
  194. void MKL_LAPACK_OPENMP_OFFLOAD(chegvx)(const MKL_INT* itype, const char* jobz, const char* range, const char* uplo,
  195. const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
  196. const MKL_INT* ldb, const float* vl, const float* vu, const MKL_INT* il,
  197. const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w, MKL_Complex8* z,
  198. const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
  199. MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info, void* interop) NOTHROW;
  200. void MKL_LAPACK_OPENMP_OFFLOAD(zhegvx)(const MKL_INT* itype, const char* jobz, const char* range, const char* uplo,
  201. const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
  202. const MKL_INT* ldb, const double* vl, const double* vu, const MKL_INT* il,
  203. const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w, MKL_Complex16* z,
  204. const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
  205. MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info, void* interop) NOTHROW;
  206. void MKL_LAPACK_OPENMP_OFFLOAD(chetrd)(const char* uplo, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
  207. float* d, float* e, MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
  208. MKL_INT* info, void* interop) NOTHROW;
  209. void MKL_LAPACK_OPENMP_OFFLOAD(zhetrd)(const char* uplo, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
  210. double* d, double* e, MKL_Complex16* tau, MKL_Complex16* work,
  211. const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  212. void MKL_LAPACK_OPENMP_OFFLOAD(dorgqr)(const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
  213. const MKL_INT* lda, const double* tau, double* work, const MKL_INT* lwork,
  214. MKL_INT* info, void* interop) NOTHROW;
  215. void MKL_LAPACK_OPENMP_OFFLOAD(sorgqr)(const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
  216. const MKL_INT* lda, const float* tau, float* work, const MKL_INT* lwork,
  217. MKL_INT* info, void* interop) NOTHROW;
  218. void MKL_LAPACK_OPENMP_OFFLOAD(dormqr)(const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
  219. const MKL_INT* k, const double* a, const MKL_INT* lda, const double* tau,
  220. double* c, const MKL_INT* ldc, double* work, const MKL_INT* lwork, MKL_INT* info,
  221. void* interop) NOTHROW;
  222. void MKL_LAPACK_OPENMP_OFFLOAD(sormqr)(const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
  223. const MKL_INT* k, const float* a, const MKL_INT* lda, const float* tau, float* c,
  224. const MKL_INT* ldc, float* work, const MKL_INT* lwork, MKL_INT* info,
  225. void* interop) NOTHROW;
  226. void MKL_LAPACK_OPENMP_OFFLOAD(csteqr)(const char* compz, const MKL_INT* n, float* d, float* e, MKL_Complex8* z,
  227. const MKL_INT* ldz, float* work, MKL_INT* info, void* interop) NOTHROW;
  228. void MKL_LAPACK_OPENMP_OFFLOAD(dsteqr)(const char* compz, const MKL_INT* n, double* d, double* e, double* z,
  229. const MKL_INT* ldz, double* work, MKL_INT* info, void* interop) NOTHROW;
  230. void MKL_LAPACK_OPENMP_OFFLOAD(ssteqr)(const char* compz, const MKL_INT* n, float* d, float* e, float* z,
  231. const MKL_INT* ldz, float* work, MKL_INT* info, void* interop) NOTHROW;
  232. void MKL_LAPACK_OPENMP_OFFLOAD(zsteqr)(const char* compz, const MKL_INT* n, double* d, double* e, MKL_Complex16* z,
  233. const MKL_INT* ldz, double* work, MKL_INT* info, void* interop) NOTHROW;
  234. void MKL_LAPACK_OPENMP_OFFLOAD(dsyev)(const char* jobz, const char* uplo, const MKL_INT* n, double* a,
  235. const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork, MKL_INT* info,
  236. void* interop) NOTHROW;
  237. void MKL_LAPACK_OPENMP_OFFLOAD(ssyev)(const char* jobz, const char* uplo, const MKL_INT* n, float* a,
  238. const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork, MKL_INT* info,
  239. void* interop) NOTHROW;
  240. void MKL_LAPACK_OPENMP_OFFLOAD(dsyevd)(const char* jobz, const char* uplo, const MKL_INT* n, double* a,
  241. const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
  242. MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info, void* interop) NOTHROW;
  243. void MKL_LAPACK_OPENMP_OFFLOAD(ssyevd)(const char* jobz, const char* uplo, const MKL_INT* n, float* a,
  244. const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork, MKL_INT* iwork,
  245. const MKL_INT* liwork, MKL_INT* info, void* interop) NOTHROW;
  246. void MKL_LAPACK_OPENMP_OFFLOAD(dsyevx)(const char* jobz, const char* range, const char* uplo, const MKL_INT* n,
  247. double* a, const MKL_INT* lda, const double* vl, const double* vu,
  248. const MKL_INT* il, const MKL_INT* iu, const double* abstol, MKL_INT* m,
  249. double* w, double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
  250. MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info, void* interop) NOTHROW;
  251. void MKL_LAPACK_OPENMP_OFFLOAD(ssyevx)(const char* jobz, const char* range, const char* uplo, const MKL_INT* n,
  252. float* a, const MKL_INT* lda, const float* vl, const float* vu,
  253. const MKL_INT* il, const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
  254. float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork, MKL_INT* iwork,
  255. MKL_INT* ifail, MKL_INT* info, void* interop) NOTHROW;
  256. void MKL_LAPACK_OPENMP_OFFLOAD(dsygvd)(const MKL_INT* itype, const char* jobz, const char* uplo, const MKL_INT* n,
  257. double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb, double* w,
  258. double* work, const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
  259. MKL_INT* info, void* interop) NOTHROW;
  260. void MKL_LAPACK_OPENMP_OFFLOAD(ssygvd)(const MKL_INT* itype, const char* jobz, const char* uplo, const MKL_INT* n,
  261. float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb, float* w,
  262. float* work, const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
  263. MKL_INT* info, void* interop) NOTHROW;
  264. void MKL_LAPACK_OPENMP_OFFLOAD(dsygvx)(const MKL_INT* itype, const char* jobz, const char* range, const char* uplo,
  265. const MKL_INT* n, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
  266. const double* vl, const double* vu, const MKL_INT* il, const MKL_INT* iu,
  267. const double* abstol, MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
  268. double* work, const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
  269. MKL_INT* info, void* interop) NOTHROW;
  270. void MKL_LAPACK_OPENMP_OFFLOAD(ssygvx)(const MKL_INT* itype, const char* jobz, const char* range, const char* uplo,
  271. const MKL_INT* n, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
  272. const float* vl, const float* vu, const MKL_INT* il, const MKL_INT* iu,
  273. const float* abstol, MKL_INT* m, float* w, float* z, const MKL_INT* ldz,
  274. float* work, const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info,
  275. void* interop) NOTHROW;
  276. void MKL_LAPACK_OPENMP_OFFLOAD(dsytrd)(const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda, double* d,
  277. double* e, double* tau, double* work, const MKL_INT* lwork, MKL_INT* info,
  278. void* interop) NOTHROW;
  279. void MKL_LAPACK_OPENMP_OFFLOAD(ssytrd)(const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda, float* d,
  280. float* e, float* tau, float* work, const MKL_INT* lwork, MKL_INT* info,
  281. void* interop) NOTHROW;
  282. void MKL_LAPACK_OPENMP_OFFLOAD(ctrtri)(const char* uplo, const char* diag, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info, void *interop) NOTHROW;
  283. void MKL_LAPACK_OPENMP_OFFLOAD(dtrtri)(const char* uplo, const char* diag, const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* info, void *interop) NOTHROW;
  284. void MKL_LAPACK_OPENMP_OFFLOAD(strtri)(const char* uplo, const char* diag, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info, void *interop) NOTHROW;
  285. void MKL_LAPACK_OPENMP_OFFLOAD(ztrtri)(const char* uplo, const char* diag, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info, void *interop) NOTHROW;
  286. void MKL_LAPACK_OPENMP_OFFLOAD(ctrtrs)(const char* uplo, const char* trans, const char* diag, const MKL_INT* n,
  287. const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
  288. const MKL_INT* ldb, MKL_INT* info, void* interop) NOTHROW;
  289. void MKL_LAPACK_OPENMP_OFFLOAD(dtrtrs)(const char* uplo, const char* trans, const char* diag, const MKL_INT* n,
  290. const MKL_INT* nrhs, const double* a, const MKL_INT* lda, double* b,
  291. const MKL_INT* ldb, MKL_INT* info, void* interop) NOTHROW;
  292. void MKL_LAPACK_OPENMP_OFFLOAD(strtrs)(const char* uplo, const char* trans, const char* diag, const MKL_INT* n,
  293. const MKL_INT* nrhs, const float* a, const MKL_INT* lda, float* b,
  294. const MKL_INT* ldb, MKL_INT* info, void* interop) NOTHROW;
  295. void MKL_LAPACK_OPENMP_OFFLOAD(ztrtrs)(const char* uplo, const char* trans, const char* diag, const MKL_INT* n,
  296. const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
  297. MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info, void* interop) NOTHROW;
  298. void MKL_LAPACK_OPENMP_OFFLOAD(cungqr)(const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, MKL_Complex8* a,
  299. const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* work,
  300. const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  301. void MKL_LAPACK_OPENMP_OFFLOAD(zungqr)(const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, MKL_Complex16* a,
  302. const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* work,
  303. const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  304. void MKL_LAPACK_OPENMP_OFFLOAD(cunmqr)(const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
  305. const MKL_INT* k, const MKL_Complex8* a, const MKL_INT* lda,
  306. const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work,
  307. const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  308. void MKL_LAPACK_OPENMP_OFFLOAD(zunmqr)(const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
  309. const MKL_INT* k, const MKL_Complex16* a, const MKL_INT* lda,
  310. const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
  311. MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info, void* interop) NOTHROW;
  312. void MKL_LAPACK_OPENMP_OFFLOAD(cgeqrf)(const MKL_INT *m, const MKL_INT *n, MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *tau, MKL_Complex8 *work, const MKL_INT *lwork, MKL_INT *info, void *interop) NOTHROW;
  313. void MKL_LAPACK_OPENMP_OFFLOAD(dgeqrf)(const MKL_INT *m, const MKL_INT *n, double *a, const MKL_INT *lda, double *tau, double *work, const MKL_INT *lwork, MKL_INT *info, void *interop) NOTHROW;
  314. void MKL_LAPACK_OPENMP_OFFLOAD(sgeqrf)(const MKL_INT *m, const MKL_INT *n, float *a, const MKL_INT *lda, float *tau, float *work, const MKL_INT *lwork, MKL_INT *info, void *interop) NOTHROW;
  315. void MKL_LAPACK_OPENMP_OFFLOAD(zgeqrf)(const MKL_INT *m, const MKL_INT *n, MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *tau, MKL_Complex16 *work, const MKL_INT *lwork, MKL_INT *info, void *interop) NOTHROW;
  316. void MKL_LAPACK_OPENMP_OFFLOAD(cgetri_oop_batch_strided)(const MKL_INT *n, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, MKL_Complex8 *ainv, const MKL_INT *ldainv, const MKL_INT *stride_ainv, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  317. void MKL_LAPACK_OPENMP_OFFLOAD(dgetri_oop_batch_strided)(const MKL_INT *n, const double *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, double *ainv, const MKL_INT *ldainv, const MKL_INT *stride_ainv, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  318. void MKL_LAPACK_OPENMP_OFFLOAD(sgetri_oop_batch_strided)(const MKL_INT *n, const float *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, float *ainv, const MKL_INT *ldainv, const MKL_INT *stride_ainv, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  319. void MKL_LAPACK_OPENMP_OFFLOAD(zgetri_oop_batch_strided)(const MKL_INT *n, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, MKL_Complex16 *ainv, const MKL_INT *ldainv, const MKL_INT *stride_ainv, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  320. void MKL_LAPACK_OPENMP_OFFLOAD(cgetri_oop_batch)(const MKL_INT *n, const MKL_Complex8 **a, const MKL_INT *lda, const MKL_INT **ipiv, MKL_Complex8 **ainv, const MKL_INT *ldainv, const MKL_INT *group_count, const MKL_INT *group_size, MKL_INT *info, void *interop) NOTHROW;
  321. void MKL_LAPACK_OPENMP_OFFLOAD(dgetri_oop_batch)(const MKL_INT *n, const double **a, const MKL_INT *lda, const MKL_INT **ipiv, double **ainv, const MKL_INT *ldainv, const MKL_INT *group_count, const MKL_INT *group_size, MKL_INT *info, void *interop) NOTHROW;
  322. void MKL_LAPACK_OPENMP_OFFLOAD(sgetri_oop_batch)(const MKL_INT *n, const float **a, const MKL_INT *lda, const MKL_INT **ipiv, float **ainv, const MKL_INT *ldainv, const MKL_INT *group_count, const MKL_INT *group_size, MKL_INT *info, void *interop) NOTHROW;
  323. void MKL_LAPACK_OPENMP_OFFLOAD(zgetri_oop_batch)(const MKL_INT *n, const MKL_Complex16 **a, const MKL_INT *lda, const MKL_INT **ipiv, MKL_Complex16 **ainv, const MKL_INT *ldainv, const MKL_INT *group_count, const MKL_INT *group_size, MKL_INT *info, void *interop) NOTHROW;
  324. void MKL_LAPACK_OPENMP_OFFLOAD(cgetrs_batch_strided)(const char *trans, const MKL_INT *n, const MKL_INT *nrhs, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, MKL_Complex8 *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  325. void MKL_LAPACK_OPENMP_OFFLOAD(dgetrs_batch_strided)(const char *trans, const MKL_INT *n, const MKL_INT *nrhs, const double *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, double *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  326. void MKL_LAPACK_OPENMP_OFFLOAD(sgetrs_batch_strided)(const char *trans, const MKL_INT *n, const MKL_INT *nrhs, const float *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, float *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  327. void MKL_LAPACK_OPENMP_OFFLOAD(zgetrs_batch_strided)(const char *trans, const MKL_INT *n, const MKL_INT *nrhs, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stride_a, const MKL_INT *ipiv, const MKL_INT *stride_ipiv, MKL_Complex16 *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  328. void MKL_LAPACK_OPENMP_OFFLOAD(cpotrf)(const char *uplo, const MKL_INT *n, MKL_Complex8 *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  329. void MKL_LAPACK_OPENMP_OFFLOAD(dpotrf)(const char *uplo, const MKL_INT *n, double *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  330. void MKL_LAPACK_OPENMP_OFFLOAD(spotrf)(const char *uplo, const MKL_INT *n, float *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  331. void MKL_LAPACK_OPENMP_OFFLOAD(zpotrf)(const char *uplo, const MKL_INT *n, MKL_Complex16 *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  332. void MKL_LAPACK_OPENMP_OFFLOAD(cpotri)(const char *uplo, const MKL_INT *n, MKL_Complex8 *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  333. void MKL_LAPACK_OPENMP_OFFLOAD(dpotri)(const char *uplo, const MKL_INT *n, double *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  334. void MKL_LAPACK_OPENMP_OFFLOAD(spotri)(const char *uplo, const MKL_INT *n, float *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  335. void MKL_LAPACK_OPENMP_OFFLOAD(zpotri)(const char *uplo, const MKL_INT *n, MKL_Complex16 *a, const MKL_INT *lda, MKL_INT *info, void *interop) NOTHROW;
  336. void MKL_LAPACK_OPENMP_OFFLOAD(cpotrs)(const char *uplo, const MKL_INT *n, const MKL_INT *nrhs, const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *b, const MKL_INT *ldb, MKL_INT *info, void *interop) NOTHROW;
  337. void MKL_LAPACK_OPENMP_OFFLOAD(dpotrs)(const char *uplo, const MKL_INT *n, const MKL_INT *nrhs, const double *a, const MKL_INT *lda, double *b, const MKL_INT *ldb, MKL_INT *info, void *interop) NOTHROW;
  338. void MKL_LAPACK_OPENMP_OFFLOAD(spotrs)(const char *uplo, const MKL_INT *n, const MKL_INT *nrhs, const float *a, const MKL_INT *lda, float *b, const MKL_INT *ldb, MKL_INT *info, void *interop) NOTHROW;
  339. void MKL_LAPACK_OPENMP_OFFLOAD(zpotrs)(const char *uplo, const MKL_INT *n, const MKL_INT *nrhs, const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *ldb, MKL_INT *info, void *interop) NOTHROW;
  340. void MKL_LAPACK_OPENMP_OFFLOAD(dgels_batch_strided)(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *nrhs, double *a, const MKL_INT *lda, const MKL_INT *stride_a, double *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  341. void MKL_LAPACK_OPENMP_OFFLOAD(cgels_batch_strided)(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *nrhs, MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stride_a, MKL_Complex8 *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  342. void MKL_LAPACK_OPENMP_OFFLOAD(sgels_batch_strided)(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *nrhs, float *a, const MKL_INT *lda, const MKL_INT *stride_a, float *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  343. void MKL_LAPACK_OPENMP_OFFLOAD(zgels_batch_strided)(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *nrhs, MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stride_a, MKL_Complex16 *b, const MKL_INT *ldb, const MKL_INT *stride_b, const MKL_INT *batch_size, MKL_INT *info, void *interop) NOTHROW;
  344. #ifdef __cplusplus
  345. }
  346. #endif /* __cplusplus */
  347. #endif /* _MKL_LAPACK_OMP_VARIANT_H_ */