mkl_lapack_omp_variant_ilp64.f90 76 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702
  1. !===============================================================================
  2. ! Copyright 2020-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. ! Content:
  15. ! Intel(R) oneAPI Math Kernel Library (oneMKL) FORTRAN interface for
  16. ! OpenMP offload for LAPACK
  17. !*******************************************************************************
  18. interface
  19. subroutine mkl_lapack_cgebrd_omp_offload_ilp64(m, n, a, lda, d, &
  20. e, tauq, taup, &
  21. work, lwork, &
  22. info) bind(c)
  23. integer, intent(in) :: m
  24. integer, intent(in) :: n
  25. integer, intent(in) :: lda
  26. integer, intent(in) :: lwork
  27. integer, intent(out) :: info
  28. complex*8, intent(inout) :: a(lda,*)
  29. real, intent(out) :: d(*)
  30. real, intent(out) :: e(*)
  31. complex*8, intent(out) :: tauq(*)
  32. complex*8, intent(out) :: taup(*)
  33. complex*8, intent(out) :: work(*)
  34. end subroutine mkl_lapack_cgebrd_omp_offload_ilp64
  35. subroutine mkl_lapack_dgebrd_omp_offload_ilp64(m, n, a, lda, d, &
  36. e, tauq, taup, &
  37. work, lwork, &
  38. info) bind(c)
  39. integer, intent(in) :: m
  40. integer, intent(in) :: n
  41. integer, intent(in) :: lda
  42. integer, intent(in) :: lwork
  43. integer, intent(out) :: info
  44. double precision, intent(inout) :: a(lda,*)
  45. double precision, intent(out) :: d(*)
  46. double precision, intent(out) :: e(*)
  47. double precision, intent(out) :: tauq(*)
  48. double precision, intent(out) :: taup(*)
  49. double precision, intent(out) :: work(*)
  50. end subroutine mkl_lapack_dgebrd_omp_offload_ilp64
  51. subroutine mkl_lapack_sgebrd_omp_offload_ilp64(m, n, a, lda, d, &
  52. e, tauq, taup, &
  53. work, lwork, &
  54. info) bind(c)
  55. integer, intent(in) :: m
  56. integer, intent(in) :: n
  57. integer, intent(in) :: lda
  58. integer, intent(in) :: lwork
  59. integer, intent(out) :: info
  60. real, intent(inout) :: a(lda,*)
  61. real, intent(out) :: d(*)
  62. real, intent(out) :: e(*)
  63. real, intent(out) :: tauq(*)
  64. real, intent(out) :: taup(*)
  65. real, intent(out) :: work(*)
  66. end subroutine mkl_lapack_sgebrd_omp_offload_ilp64
  67. subroutine mkl_lapack_zgebrd_omp_offload_ilp64(m, n, a, lda, d, &
  68. e, tauq, taup, &
  69. work, lwork, &
  70. info) bind(c)
  71. integer, intent(in) :: m
  72. integer, intent(in) :: n
  73. integer, intent(in) :: lda
  74. integer, intent(in) :: lwork
  75. integer, intent(out) :: info
  76. complex*16, intent(inout) :: a(lda,*)
  77. double precision, intent(out) :: d(*)
  78. double precision, intent(out) :: e(*)
  79. complex*16, intent(out) :: tauq(*)
  80. complex*16, intent(out) :: taup(*)
  81. complex*16, intent(out) :: work(*)
  82. end subroutine mkl_lapack_zgebrd_omp_offload_ilp64
  83. subroutine mkl_lapack_cgeqrf_omp_offload_ilp64(m, n, a, lda, tau,&
  84. work, lwork, &
  85. info) bind(c)
  86. integer, intent(in) :: m
  87. integer, intent(in) :: n
  88. complex*8, intent(inout) :: a(lda,*)
  89. integer, intent(in) :: lda
  90. complex*8, intent(out) :: tau(*)
  91. complex*8, intent(out) :: work(*)
  92. integer, intent(in) :: lwork
  93. integer, intent(out) :: info
  94. end subroutine mkl_lapack_cgeqrf_omp_offload_ilp64
  95. subroutine mkl_lapack_dgeqrf_omp_offload_ilp64(m, n, a, lda, tau,&
  96. work, lwork, &
  97. info) bind(c)
  98. integer, intent(in) :: m
  99. integer, intent(in) :: n
  100. double precision, intent(inout) :: a(lda,*)
  101. integer, intent(in) :: lda
  102. double precision, intent(out) :: tau(*)
  103. double precision, intent(out) :: work(*)
  104. integer, intent(in) :: lwork
  105. integer, intent(out) :: info
  106. end subroutine mkl_lapack_dgeqrf_omp_offload_ilp64
  107. subroutine mkl_lapack_sgeqrf_omp_offload_ilp64(m, n, a, lda, tau,&
  108. work, lwork, &
  109. info) bind(c)
  110. integer, intent(in) :: m
  111. integer, intent(in) :: n
  112. real, intent(inout) :: a(lda,*)
  113. integer, intent(in) :: lda
  114. real, intent(out) :: tau(*)
  115. real, intent(out) :: work(*)
  116. integer, intent(in) :: lwork
  117. integer, intent(out) :: info
  118. end subroutine mkl_lapack_sgeqrf_omp_offload_ilp64
  119. subroutine mkl_lapack_zgeqrf_omp_offload_ilp64(m, n, a, lda, tau,&
  120. work, lwork, &
  121. info) bind(c)
  122. integer, intent(in) :: m
  123. integer, intent(in) :: n
  124. complex*16, intent(inout) :: a(lda,*)
  125. integer, intent(in) :: lda
  126. complex*16, intent(out) :: tau(*)
  127. complex*16, intent(out) :: work(*)
  128. integer, intent(in) :: lwork
  129. integer, intent(out) :: info
  130. end subroutine mkl_lapack_zgeqrf_omp_offload_ilp64
  131. subroutine mkl_lapack_cgesvd_omp_offload_ilp64(jobu, jobvt, m, n,&
  132. a, lda, s, u, ldu,&
  133. vt, ldvt, work, &
  134. lwork, rwork, &
  135. info) bind(c)
  136. character*1, intent(in) :: jobu
  137. character*1, intent(in) :: jobvt
  138. integer, intent(in) :: m
  139. integer, intent(in) :: n
  140. integer, intent(in) :: lda
  141. integer, intent(in) :: ldu
  142. integer, intent(in) :: ldvt
  143. integer, intent(in) :: lwork
  144. integer, intent(out) :: info
  145. complex*8, intent(inout) :: a(lda,*)
  146. real, intent(out) :: s(*)
  147. complex*8, intent(out) :: u(ldu,*)
  148. complex*8, intent(out) :: vt(ldvt,*)
  149. complex*8, intent(out) :: work(*)
  150. real, intent(out) :: rwork(*)
  151. end subroutine mkl_lapack_cgesvd_omp_offload_ilp64
  152. subroutine mkl_lapack_zgesvd_omp_offload_ilp64(jobu, jobvt, m, n,&
  153. a, lda, s, u, ldu,&
  154. vt, ldvt, work, &
  155. lwork, rwork, &
  156. info) bind(c)
  157. character*1, intent(in) :: jobu
  158. character*1, intent(in) :: jobvt
  159. integer, intent(in) :: m
  160. integer, intent(in) :: n
  161. integer, intent(in) :: lda
  162. integer, intent(in) :: ldu
  163. integer, intent(in) :: ldvt
  164. integer, intent(in) :: lwork
  165. integer, intent(out) :: info
  166. complex*16, intent(inout) :: a(lda,*)
  167. double precision, intent(out) :: s(*)
  168. complex*16, intent(out) :: u(ldu,*)
  169. complex*16, intent(out) :: vt(ldvt,*)
  170. complex*16, intent(out) :: work(*)
  171. double precision, intent(out) :: rwork(*)
  172. end subroutine mkl_lapack_zgesvd_omp_offload_ilp64
  173. subroutine mkl_lapack_dgesvd_omp_offload_ilp64(jobu, jobvt, m, n,&
  174. a, lda, s, u, ldu,&
  175. vt, ldvt, work, &
  176. lwork, &
  177. info) bind(c)
  178. character*1, intent(in) :: jobu
  179. character*1, intent(in) :: jobvt
  180. integer, intent(in) :: m
  181. integer, intent(in) :: n
  182. integer, intent(in) :: lda
  183. integer, intent(in) :: ldu
  184. integer, intent(in) :: ldvt
  185. integer, intent(in) :: lwork
  186. integer, intent(out) :: info
  187. double precision, intent(inout) :: a(lda,*)
  188. double precision, intent(out) :: s(*)
  189. double precision, intent(out) :: u(ldu,*)
  190. double precision, intent(out) :: vt(ldvt,*)
  191. double precision, intent(out) :: work(*)
  192. end subroutine mkl_lapack_dgesvd_omp_offload_ilp64
  193. subroutine mkl_lapack_sgesvd_omp_offload_ilp64(jobu, jobvt, m, n,&
  194. a, lda, s, u, ldu,&
  195. vt, ldvt, work, &
  196. lwork, &
  197. info) bind(c)
  198. character*1, intent(in) :: jobu
  199. character*1, intent(in) :: jobvt
  200. integer, intent(in) :: m
  201. integer, intent(in) :: n
  202. integer, intent(in) :: lda
  203. integer, intent(in) :: ldu
  204. integer, intent(in) :: ldvt
  205. integer, intent(in) :: lwork
  206. integer, intent(out) :: info
  207. real, intent(inout) :: a(lda,*)
  208. real, intent(out) :: s(*)
  209. real, intent(out) :: u(ldu,*)
  210. real, intent(out) :: vt(ldvt,*)
  211. real, intent(out) :: work(*)
  212. end subroutine mkl_lapack_sgesvd_omp_offload_ilp64
  213. subroutine mkl_lapack_cgetrf_omp_offload_ilp64(m, n, a, lda, &
  214. ipiv, &
  215. info) bind(c)
  216. integer, intent(in) :: m
  217. integer, intent(in) :: n
  218. integer, intent(in) :: lda
  219. integer, intent(out) :: info
  220. complex*8, intent(inout) :: a(lda,*)
  221. integer, intent(out) :: ipiv(*)
  222. end subroutine mkl_lapack_cgetrf_omp_offload_ilp64
  223. subroutine mkl_lapack_dgetrf_omp_offload_ilp64(m, n, a, lda, &
  224. ipiv, &
  225. info) bind(c)
  226. integer, intent(in) :: m
  227. integer, intent(in) :: n
  228. integer, intent(in) :: lda
  229. integer, intent(out) :: info
  230. double precision, intent(inout) :: a(lda,*)
  231. integer, intent(out) :: ipiv(*)
  232. end subroutine mkl_lapack_dgetrf_omp_offload_ilp64
  233. subroutine mkl_lapack_sgetrf_omp_offload_ilp64(m, n, a, lda, &
  234. ipiv, &
  235. info) bind(c)
  236. integer, intent(in) :: m
  237. integer, intent(in) :: n
  238. integer, intent(in) :: lda
  239. integer, intent(out) :: info
  240. real, intent(inout) :: a(lda,*)
  241. integer, intent(out) :: ipiv(*)
  242. end subroutine mkl_lapack_sgetrf_omp_offload_ilp64
  243. subroutine mkl_lapack_zgetrf_omp_offload_ilp64(m, n, a, lda, &
  244. ipiv, &
  245. info) bind(c)
  246. integer, intent(in) :: m
  247. integer, intent(in) :: n
  248. integer, intent(in) :: lda
  249. integer, intent(out) :: info
  250. complex*16, intent(inout) :: a(lda,*)
  251. integer, intent(out) :: ipiv(*)
  252. end subroutine mkl_lapack_zgetrf_omp_offload_ilp64
  253. subroutine mkl_lapack_cgetrf_batch_strided_omp_offload_ilp64(m, &
  254. n, a, lda, &
  255. stride_a, &
  256. ipiv, &
  257. stride_ipiv, &
  258. batch_size, &
  259. info) bind(c)
  260. integer, intent(in) :: m
  261. integer, intent(in) :: n
  262. integer, intent(in) :: lda
  263. integer, intent(in) :: stride_a
  264. integer, intent(in) :: stride_ipiv
  265. integer, intent(in) :: batch_size
  266. complex*8, intent(inout) :: a(stride_a,*)
  267. integer, intent(out) :: ipiv(stride_ipiv,*)
  268. integer, intent(out) :: info(*)
  269. end subroutine mkl_lapack_cgetrf_batch_strided_omp_offload_ilp64
  270. subroutine mkl_lapack_dgetrf_batch_strided_omp_offload_ilp64(m, &
  271. n, a, lda, &
  272. stride_a, &
  273. ipiv, &
  274. stride_ipiv, &
  275. batch_size, &
  276. info) bind(c)
  277. integer, intent(in) :: m
  278. integer, intent(in) :: n
  279. integer, intent(in) :: lda
  280. integer, intent(in) :: stride_a
  281. integer, intent(in) :: stride_ipiv
  282. integer, intent(in) :: batch_size
  283. double precision, intent(inout) :: a(stride_a,*)
  284. integer, intent(out) :: ipiv(stride_ipiv,*)
  285. integer, intent(out) :: info(*)
  286. end subroutine mkl_lapack_dgetrf_batch_strided_omp_offload_ilp64
  287. subroutine mkl_lapack_sgetrf_batch_strided_omp_offload_ilp64(m, &
  288. n, a, lda, &
  289. stride_a, &
  290. ipiv, &
  291. stride_ipiv, &
  292. batch_size, &
  293. info) bind(c)
  294. integer, intent(in) :: m
  295. integer, intent(in) :: n
  296. integer, intent(in) :: lda
  297. integer, intent(in) :: stride_a
  298. integer, intent(in) :: stride_ipiv
  299. integer, intent(in) :: batch_size
  300. real, intent(inout) :: a(stride_a,*)
  301. integer, intent(out) :: ipiv(stride_ipiv,*)
  302. integer, intent(out) :: info(*)
  303. end subroutine mkl_lapack_sgetrf_batch_strided_omp_offload_ilp64
  304. subroutine mkl_lapack_zgetrf_batch_strided_omp_offload_ilp64(m, &
  305. n, a, lda, &
  306. stride_a, &
  307. ipiv, &
  308. stride_ipiv, &
  309. batch_size, &
  310. info) bind(c)
  311. integer, intent(in) :: m
  312. integer, intent(in) :: n
  313. integer, intent(in) :: lda
  314. integer, intent(in) :: stride_a
  315. integer, intent(in) :: stride_ipiv
  316. integer, intent(in) :: batch_size
  317. complex*16, intent(inout) :: a(stride_a,*)
  318. integer, intent(out) :: ipiv(stride_ipiv,*)
  319. integer, intent(out) :: info(*)
  320. end subroutine mkl_lapack_zgetrf_batch_strided_omp_offload_ilp64
  321. subroutine mkl_lapack_cgetri_omp_offload_ilp64(n, a, lda, ipiv, &
  322. work, lwork, &
  323. info) bind(c)
  324. integer, intent(in) :: n
  325. integer, intent(in) :: lda
  326. integer, intent(in) :: lwork
  327. integer, intent(out) :: info
  328. complex*8, intent(inout) :: a(lda,*)
  329. integer, intent(in) :: ipiv(*)
  330. complex*8, intent(out) :: work(*)
  331. end subroutine mkl_lapack_cgetri_omp_offload_ilp64
  332. subroutine mkl_lapack_dgetri_omp_offload_ilp64(n, a, lda, ipiv, &
  333. work, lwork, &
  334. info) bind(c)
  335. integer, intent(in) :: n
  336. integer, intent(in) :: lda
  337. integer, intent(in) :: lwork
  338. integer, intent(out) :: info
  339. double precision, intent(inout) :: a(lda,*)
  340. integer, intent(in) :: ipiv(*)
  341. double precision, intent(out) :: work(*)
  342. end subroutine mkl_lapack_dgetri_omp_offload_ilp64
  343. subroutine mkl_lapack_sgetri_omp_offload_ilp64(n, a, lda, ipiv, &
  344. work, lwork, &
  345. info) bind(c)
  346. integer, intent(in) :: n
  347. integer, intent(in) :: lda
  348. integer, intent(in) :: lwork
  349. integer, intent(out) :: info
  350. real, intent(inout) :: a(lda,*)
  351. integer, intent(in) :: ipiv(*)
  352. real, intent(out) :: work(*)
  353. end subroutine mkl_lapack_sgetri_omp_offload_ilp64
  354. subroutine mkl_lapack_zgetri_omp_offload_ilp64(n, a, lda, ipiv, &
  355. work, lwork, &
  356. info) bind(c)
  357. integer, intent(in) :: n
  358. integer, intent(in) :: lda
  359. integer, intent(in) :: lwork
  360. integer, intent(out) :: info
  361. complex*16, intent(inout) :: a(lda,*)
  362. integer, intent(in) :: ipiv(*)
  363. complex*16, intent(out) :: work(*)
  364. end subroutine mkl_lapack_zgetri_omp_offload_ilp64
  365. subroutine mkl_lapack_cgetri_oop_batch_strided_omp_offload_ilp64(n,&
  366. a, lda, &
  367. stride_a, &
  368. ipiv, &
  369. stride_ipiv, &
  370. ainv, ldainv, &
  371. stride_ainv, &
  372. batch_size, &
  373. info) bind(c)
  374. integer, intent(in) :: n
  375. integer, intent(in) :: lda
  376. integer, intent(in) :: stride_a
  377. integer, intent(in) :: stride_ipiv
  378. integer, intent(in) :: ldainv
  379. integer, intent(in) :: stride_ainv
  380. integer, intent(in) :: batch_size
  381. complex*8, intent(in) :: a(stride_a,*)
  382. integer, intent(in) :: ipiv(stride_ipiv,*)
  383. complex*8, intent(inout) :: ainv(stride_ainv,*)
  384. integer, intent(out) :: info(*)
  385. end subroutine mkl_lapack_cgetri_oop_batch_strided_omp_offload_ilp64
  386. subroutine mkl_lapack_dgetri_oop_batch_strided_omp_offload_ilp64(n,&
  387. a, lda, &
  388. stride_a, &
  389. ipiv, &
  390. stride_ipiv, &
  391. ainv, ldainv, &
  392. stride_ainv, &
  393. batch_size, &
  394. info) bind(c)
  395. integer, intent(in) :: n
  396. integer, intent(in) :: lda
  397. integer, intent(in) :: stride_a
  398. integer, intent(in) :: stride_ipiv
  399. integer, intent(in) :: ldainv
  400. integer, intent(in) :: stride_ainv
  401. integer, intent(in) :: batch_size
  402. double precision, intent(in) :: a(stride_a,*)
  403. integer, intent(in) :: ipiv(stride_ipiv,*)
  404. double precision, intent(inout) :: ainv(stride_ainv,*)
  405. integer, intent(out) :: info(*)
  406. end subroutine mkl_lapack_dgetri_oop_batch_strided_omp_offload_ilp64
  407. subroutine mkl_lapack_sgetri_oop_batch_strided_omp_offload_ilp64(n,&
  408. a, lda, &
  409. stride_a, &
  410. ipiv, &
  411. stride_ipiv, &
  412. ainv, ldainv, &
  413. stride_ainv, &
  414. batch_size, &
  415. info) bind(c)
  416. integer, intent(in) :: n
  417. integer, intent(in) :: lda
  418. integer, intent(in) :: stride_a
  419. integer, intent(in) :: stride_ipiv
  420. integer, intent(in) :: ldainv
  421. integer, intent(in) :: stride_ainv
  422. integer, intent(in) :: batch_size
  423. real, intent(in) :: a(stride_a,*)
  424. integer, intent(in) :: ipiv(stride_ipiv,*)
  425. real, intent(inout) :: ainv(stride_ainv,*)
  426. integer, intent(out) :: info(*)
  427. end subroutine mkl_lapack_sgetri_oop_batch_strided_omp_offload_ilp64
  428. subroutine mkl_lapack_zgetri_oop_batch_strided_omp_offload_ilp64(n,&
  429. a, lda, &
  430. stride_a, &
  431. ipiv, &
  432. stride_ipiv, &
  433. ainv, ldainv, &
  434. stride_ainv, &
  435. batch_size, &
  436. info) bind(c)
  437. integer, intent(in) :: n
  438. integer, intent(in) :: lda
  439. integer, intent(in) :: stride_a
  440. integer, intent(in) :: stride_ipiv
  441. integer, intent(in) :: ldainv
  442. integer, intent(in) :: stride_ainv
  443. integer, intent(in) :: batch_size
  444. complex*16, intent(in) :: a(stride_a,*)
  445. integer, intent(in) :: ipiv(stride_ipiv,*)
  446. complex*16, intent(inout) :: ainv(stride_ainv,*)
  447. integer, intent(out) :: info(*)
  448. end subroutine mkl_lapack_zgetri_oop_batch_strided_omp_offload_ilp64
  449. subroutine mkl_lapack_cgetrs_omp_offload_ilp64(trans, n, nrhs, a,&
  450. lda, ipiv, b, ldb,&
  451. info) bind(c)
  452. character*1, intent(in) :: trans
  453. integer, intent(in) :: n
  454. integer, intent(in) :: nrhs
  455. integer, intent(in) :: lda
  456. integer, intent(in) :: ldb
  457. integer, intent(out) :: info
  458. complex*8, intent(in) :: a(lda,*)
  459. integer, intent(in) :: ipiv(*)
  460. complex*8, intent(inout) :: b(ldb,*)
  461. end subroutine mkl_lapack_cgetrs_omp_offload_ilp64
  462. subroutine mkl_lapack_dgetrs_omp_offload_ilp64(trans, n, nrhs, a,&
  463. lda, ipiv, b, ldb,&
  464. info) bind(c)
  465. character*1, intent(in) :: trans
  466. integer, intent(in) :: n
  467. integer, intent(in) :: nrhs
  468. integer, intent(in) :: lda
  469. integer, intent(in) :: ldb
  470. integer, intent(out) :: info
  471. double precision, intent(in) :: a(lda,*)
  472. integer, intent(in) :: ipiv(*)
  473. double precision, intent(inout) :: b(ldb,*)
  474. end subroutine mkl_lapack_dgetrs_omp_offload_ilp64
  475. subroutine mkl_lapack_sgetrs_omp_offload_ilp64(trans, n, nrhs, a,&
  476. lda, ipiv, b, ldb,&
  477. info) bind(c)
  478. character*1, intent(in) :: trans
  479. integer, intent(in) :: n
  480. integer, intent(in) :: nrhs
  481. integer, intent(in) :: lda
  482. integer, intent(in) :: ldb
  483. integer, intent(out) :: info
  484. real, intent(in) :: a(lda,*)
  485. integer, intent(in) :: ipiv(*)
  486. real, intent(inout) :: b(ldb,*)
  487. end subroutine mkl_lapack_sgetrs_omp_offload_ilp64
  488. subroutine mkl_lapack_zgetrs_omp_offload_ilp64(trans, n, nrhs, a,&
  489. lda, ipiv, b, ldb,&
  490. info) bind(c)
  491. character*1, intent(in) :: trans
  492. integer, intent(in) :: n
  493. integer, intent(in) :: nrhs
  494. integer, intent(in) :: lda
  495. integer, intent(in) :: ldb
  496. integer, intent(out) :: info
  497. complex*16, intent(in) :: a(lda,*)
  498. integer, intent(in) :: ipiv(*)
  499. complex*16, intent(inout) :: b(ldb,*)
  500. end subroutine mkl_lapack_zgetrs_omp_offload_ilp64
  501. subroutine mkl_lapack_cheev_omp_offload_ilp64(jobz, uplo, n, a, &
  502. lda, w, work, &
  503. lwork, rwork, &
  504. info) bind(c)
  505. character*1, intent(in) :: jobz
  506. character*1, intent(in) :: uplo
  507. integer, intent(in) :: n
  508. integer, intent(in) :: lda
  509. integer, intent(in) :: lwork
  510. integer, intent(out) :: info
  511. complex*8, intent(inout) :: a(lda,*)
  512. real, intent(out) :: w(*)
  513. complex*8, intent(out) :: work(*)
  514. real, intent(out) :: rwork(*)
  515. end subroutine mkl_lapack_cheev_omp_offload_ilp64
  516. subroutine mkl_lapack_zheev_omp_offload_ilp64(jobz, uplo, n, a, &
  517. lda, w, work, &
  518. lwork, rwork, &
  519. info) bind(c)
  520. character*1, intent(in) :: jobz
  521. character*1, intent(in) :: uplo
  522. integer, intent(in) :: n
  523. integer, intent(in) :: lda
  524. integer, intent(in) :: lwork
  525. integer, intent(out) :: info
  526. complex*16, intent(inout) :: a(lda,*)
  527. double precision, intent(out) :: w(*)
  528. complex*16, intent(out) :: work(*)
  529. double precision, intent(out) :: rwork(*)
  530. end subroutine mkl_lapack_zheev_omp_offload_ilp64
  531. subroutine mkl_lapack_cheevd_omp_offload_ilp64(jobz, uplo, n, a, &
  532. lda, w, work, &
  533. lwork, rwork, &
  534. lrwork, iwork, &
  535. liwork, &
  536. info) bind(c)
  537. character*1, intent(in) :: jobz
  538. character*1, intent(in) :: uplo
  539. integer, intent(in) :: n
  540. integer, intent(in) :: lda
  541. integer, intent(in) :: lwork
  542. integer, intent(in) :: lrwork
  543. integer, intent(in) :: liwork
  544. integer, intent(out) :: info
  545. complex*8, intent(inout) :: a(lda,*)
  546. real, intent(out) :: w(*)
  547. complex*8, intent(out) :: work(*)
  548. real, intent(out) :: rwork(*)
  549. integer, intent(out) :: iwork(*)
  550. end subroutine mkl_lapack_cheevd_omp_offload_ilp64
  551. subroutine mkl_lapack_zheevd_omp_offload_ilp64(jobz, uplo, n, a, &
  552. lda, w, work, &
  553. lwork, rwork, &
  554. lrwork, iwork, &
  555. liwork, &
  556. info) bind(c)
  557. character*1, intent(in) :: jobz
  558. character*1, intent(in) :: uplo
  559. integer, intent(in) :: n
  560. integer, intent(in) :: lda
  561. integer, intent(in) :: lwork
  562. integer, intent(in) :: lrwork
  563. integer, intent(in) :: liwork
  564. integer, intent(out) :: info
  565. complex*16, intent(inout) :: a(lda,*)
  566. double precision, intent(out) :: w(*)
  567. complex*16, intent(out) :: work(*)
  568. double precision, intent(out) :: rwork(*)
  569. integer, intent(out) :: iwork(*)
  570. end subroutine mkl_lapack_zheevd_omp_offload_ilp64
  571. subroutine mkl_lapack_cheevx_omp_offload_ilp64(jobz, range, uplo,&
  572. n, a, lda, vl, vu,&
  573. il, iu, abstol, m,&
  574. w, z, ldz, work, &
  575. lwork, rwork, &
  576. iwork, ifail, &
  577. info) bind(c)
  578. character*1, intent(in) :: jobz
  579. character*1, intent(in) :: range
  580. character*1, intent(in) :: uplo
  581. integer, intent(in) :: n
  582. integer, intent(in) :: lda
  583. real, intent(in) :: vl
  584. real, intent(in) :: vu
  585. integer, intent(in) :: il
  586. integer, intent(in) :: iu
  587. real, intent(in) :: abstol
  588. integer, intent(out) :: m
  589. integer, intent(in) :: ldz
  590. integer, intent(in) :: lwork
  591. integer, intent(out) :: info
  592. complex*8, intent(inout) :: a(lda,*)
  593. real, intent(out) :: w(*)
  594. complex*8, intent(out) :: z(ldz,*)
  595. complex*8, intent(out) :: work(*)
  596. real, intent(out) :: rwork(*)
  597. integer, intent(out) :: iwork(*)
  598. integer, intent(out) :: ifail(*)
  599. end subroutine mkl_lapack_cheevx_omp_offload_ilp64
  600. subroutine mkl_lapack_zheevx_omp_offload_ilp64(jobz, range, uplo,&
  601. n, a, lda, vl, vu,&
  602. il, iu, abstol, m,&
  603. w, z, ldz, work, &
  604. lwork, rwork, &
  605. iwork, ifail, &
  606. info) bind(c)
  607. character*1, intent(in) :: jobz
  608. character*1, intent(in) :: range
  609. character*1, intent(in) :: uplo
  610. integer, intent(in) :: n
  611. integer, intent(in) :: lda
  612. double precision, intent(in) :: vl
  613. double precision, intent(in) :: vu
  614. integer, intent(in) :: il
  615. integer, intent(in) :: iu
  616. double precision, intent(in) :: abstol
  617. integer, intent(out) :: m
  618. integer, intent(in) :: ldz
  619. integer, intent(in) :: lwork
  620. integer, intent(out) :: info
  621. complex*16, intent(inout) :: a(lda,*)
  622. double precision, intent(out) :: w(*)
  623. complex*16, intent(out) :: z(ldz,*)
  624. complex*16, intent(out) :: work(*)
  625. double precision, intent(out) :: rwork(*)
  626. integer, intent(out) :: iwork(*)
  627. integer, intent(out) :: ifail(*)
  628. end subroutine mkl_lapack_zheevx_omp_offload_ilp64
  629. subroutine mkl_lapack_chegvd_omp_offload_ilp64(itype, jobz, uplo,&
  630. n, a, lda, b, ldb,&
  631. w, work, lwork, &
  632. rwork, lrwork, &
  633. iwork, liwork, &
  634. info) bind(c)
  635. integer, intent(in) :: itype
  636. character*1, intent(in) :: jobz
  637. character*1, intent(in) :: uplo
  638. integer, intent(in) :: n
  639. integer, intent(in) :: lda
  640. integer, intent(in) :: ldb
  641. integer, intent(in) :: lwork
  642. integer, intent(in) :: lrwork
  643. integer, intent(in) :: liwork
  644. integer, intent(out) :: info
  645. complex*8, intent(inout) :: a(lda,*)
  646. complex*8, intent(inout) :: b(ldb,*)
  647. real, intent(out) :: w(*)
  648. complex*8, intent(out) :: work(*)
  649. real, intent(out) :: rwork(*)
  650. integer, intent(out) :: iwork(*)
  651. end subroutine mkl_lapack_chegvd_omp_offload_ilp64
  652. subroutine mkl_lapack_zhegvd_omp_offload_ilp64(itype, jobz, uplo,&
  653. n, a, lda, b, ldb,&
  654. w, work, lwork, &
  655. rwork, lrwork, &
  656. iwork, liwork, &
  657. info) bind(c)
  658. integer, intent(in) :: itype
  659. character*1, intent(in) :: jobz
  660. character*1, intent(in) :: uplo
  661. integer, intent(in) :: n
  662. integer, intent(in) :: lda
  663. integer, intent(in) :: ldb
  664. integer, intent(in) :: lwork
  665. integer, intent(in) :: lrwork
  666. integer, intent(in) :: liwork
  667. integer, intent(out) :: info
  668. complex*16, intent(inout) :: a(lda,*)
  669. complex*16, intent(inout) :: b(ldb,*)
  670. double precision, intent(out) :: w(*)
  671. complex*16, intent(out) :: work(*)
  672. double precision, intent(out) :: rwork(*)
  673. integer, intent(out) :: iwork(*)
  674. end subroutine mkl_lapack_zhegvd_omp_offload_ilp64
  675. subroutine mkl_lapack_chegvx_omp_offload_ilp64(itype, jobz, &
  676. range, uplo, n, a,&
  677. lda, b, ldb, vl, &
  678. vu, il, iu, &
  679. abstol, m, w, z, &
  680. ldz, work, lwork, &
  681. rwork, iwork, &
  682. ifail, &
  683. info) bind(c)
  684. integer, intent(in) :: itype
  685. character*1, intent(in) :: jobz
  686. character*1, intent(in) :: range
  687. character*1, intent(in) :: uplo
  688. integer, intent(in) :: n
  689. integer, intent(in) :: lda
  690. integer, intent(in) :: ldb
  691. real, intent(in) :: vl
  692. real, intent(in) :: vu
  693. integer, intent(in) :: il
  694. integer, intent(in) :: iu
  695. real, intent(in) :: abstol
  696. integer, intent(out) :: m
  697. integer, intent(in) :: ldz
  698. integer, intent(in) :: lwork
  699. integer, intent(out) :: info
  700. complex*8, intent(inout) :: a(lda,*)
  701. complex*8, intent(inout) :: b(ldb,*)
  702. real, intent(out) :: w(*)
  703. complex*8, intent(out) :: z(ldz,*)
  704. complex*8, intent(out) :: work(*)
  705. real, intent(out) :: rwork(*)
  706. integer, intent(out) :: iwork(*)
  707. integer, intent(out) :: ifail(*)
  708. end subroutine mkl_lapack_chegvx_omp_offload_ilp64
  709. subroutine mkl_lapack_zhegvx_omp_offload_ilp64(itype, jobz, &
  710. range, uplo, n, a,&
  711. lda, b, ldb, vl, &
  712. vu, il, iu, &
  713. abstol, m, w, z, &
  714. ldz, work, lwork, &
  715. rwork, iwork, &
  716. ifail, &
  717. info) bind(c)
  718. integer, intent(in) :: itype
  719. character*1, intent(in) :: jobz
  720. character*1, intent(in) :: range
  721. character*1, intent(in) :: uplo
  722. integer, intent(in) :: n
  723. integer, intent(in) :: lda
  724. integer, intent(in) :: ldb
  725. double precision, intent(in) :: vl
  726. double precision, intent(in) :: vu
  727. integer, intent(in) :: il
  728. integer, intent(in) :: iu
  729. double precision, intent(in) :: abstol
  730. integer, intent(out) :: m
  731. integer, intent(in) :: ldz
  732. integer, intent(in) :: lwork
  733. integer, intent(out) :: info
  734. complex*16, intent(inout) :: a(lda,*)
  735. complex*16, intent(inout) :: b(ldb,*)
  736. double precision, intent(out) :: w(*)
  737. complex*16, intent(out) :: z(ldz,*)
  738. complex*16, intent(out) :: work(*)
  739. double precision, intent(out) :: rwork(*)
  740. integer, intent(out) :: iwork(*)
  741. integer, intent(out) :: ifail(*)
  742. end subroutine mkl_lapack_zhegvx_omp_offload_ilp64
  743. subroutine mkl_lapack_chetrd_omp_offload_ilp64(uplo, n, a, lda, &
  744. d, e, tau, work, &
  745. lwork, &
  746. info) bind(c)
  747. character*1, intent(in) :: uplo
  748. integer, intent(in) :: n
  749. integer, intent(in) :: lda
  750. integer, intent(in) :: lwork
  751. integer, intent(out) :: info
  752. complex*8, intent(inout) :: a(lda,*)
  753. real, intent(out) :: d(*)
  754. real, intent(out) :: e(*)
  755. complex*8, intent(out) :: tau(*)
  756. complex*8, intent(out) :: work(*)
  757. end subroutine mkl_lapack_chetrd_omp_offload_ilp64
  758. subroutine mkl_lapack_zhetrd_omp_offload_ilp64(uplo, n, a, lda, &
  759. d, e, tau, work, &
  760. lwork, &
  761. info) bind(c)
  762. character*1, intent(in) :: uplo
  763. integer, intent(in) :: n
  764. integer, intent(in) :: lda
  765. integer, intent(in) :: lwork
  766. integer, intent(out) :: info
  767. complex*16, intent(inout) :: a(lda,*)
  768. double precision, intent(out) :: d(*)
  769. double precision, intent(out) :: e(*)
  770. complex*16, intent(out) :: tau(*)
  771. complex*16, intent(out) :: work(*)
  772. end subroutine mkl_lapack_zhetrd_omp_offload_ilp64
  773. subroutine mkl_lapack_dorgqr_omp_offload_ilp64(m, n, k, a, lda, &
  774. tau, work, lwork, &
  775. info) bind(c)
  776. integer, intent(in) :: m
  777. integer, intent(in) :: n
  778. integer, intent(in) :: k
  779. integer, intent(in) :: lda
  780. integer, intent(in) :: lwork
  781. integer, intent(out) :: info
  782. double precision, intent(inout) :: a(lda,*)
  783. double precision, intent(in) :: tau(*)
  784. double precision, intent(out) :: work(*)
  785. end subroutine mkl_lapack_dorgqr_omp_offload_ilp64
  786. subroutine mkl_lapack_sorgqr_omp_offload_ilp64(m, n, k, a, lda, &
  787. tau, work, lwork, &
  788. info) bind(c)
  789. integer, intent(in) :: m
  790. integer, intent(in) :: n
  791. integer, intent(in) :: k
  792. integer, intent(in) :: lda
  793. integer, intent(in) :: lwork
  794. integer, intent(out) :: info
  795. real, intent(inout) :: a(lda,*)
  796. real, intent(in) :: tau(*)
  797. real, intent(out) :: work(*)
  798. end subroutine mkl_lapack_sorgqr_omp_offload_ilp64
  799. subroutine mkl_lapack_dormqr_omp_offload_ilp64(side, trans, m, n,&
  800. k, a, lda, tau, c,&
  801. ldc, work, lwork, &
  802. info) bind(c)
  803. character*1, intent(in) :: side
  804. character*1, intent(in) :: trans
  805. integer, intent(in) :: m
  806. integer, intent(in) :: n
  807. integer, intent(in) :: k
  808. integer, intent(in) :: lda
  809. integer, intent(in) :: ldc
  810. integer, intent(in) :: lwork
  811. integer, intent(out) :: info
  812. double precision, intent(in) :: a(lda,*)
  813. double precision, intent(in) :: tau(*)
  814. double precision, intent(inout) :: c(ldc,*)
  815. double precision, intent(out) :: work(*)
  816. end subroutine mkl_lapack_dormqr_omp_offload_ilp64
  817. subroutine mkl_lapack_sormqr_omp_offload_ilp64(side, trans, m, n,&
  818. k, a, lda, tau, c,&
  819. ldc, work, lwork, &
  820. info) bind(c)
  821. character*1, intent(in) :: side
  822. character*1, intent(in) :: trans
  823. integer, intent(in) :: m
  824. integer, intent(in) :: n
  825. integer, intent(in) :: k
  826. integer, intent(in) :: lda
  827. integer, intent(in) :: ldc
  828. integer, intent(in) :: lwork
  829. integer, intent(out) :: info
  830. real, intent(in) :: a(lda,*)
  831. real, intent(in) :: tau(*)
  832. real, intent(inout) :: c(ldc,*)
  833. real, intent(out) :: work(*)
  834. end subroutine mkl_lapack_sormqr_omp_offload_ilp64
  835. subroutine mkl_lapack_csteqr_omp_offload_ilp64(compz, n, d, e, z,&
  836. ldz, work, &
  837. info) bind(c)
  838. character*1, intent(in) :: compz
  839. integer, intent(in) :: n
  840. integer, intent(in) :: ldz
  841. integer, intent(out) :: info
  842. real, intent(inout) :: d(*)
  843. real, intent(inout) :: e(*)
  844. complex*8, intent(inout) :: z(ldz,*)
  845. real, intent(out) :: work(*)
  846. end subroutine mkl_lapack_csteqr_omp_offload_ilp64
  847. subroutine mkl_lapack_dsteqr_omp_offload_ilp64(compz, n, d, e, z,&
  848. ldz, work, &
  849. info) bind(c)
  850. character*1, intent(in) :: compz
  851. integer, intent(in) :: n
  852. integer, intent(in) :: ldz
  853. integer, intent(out) :: info
  854. double precision, intent(inout) :: d(*)
  855. double precision, intent(inout) :: e(*)
  856. double precision, intent(inout) :: z(ldz,*)
  857. double precision, intent(out) :: work(*)
  858. end subroutine mkl_lapack_dsteqr_omp_offload_ilp64
  859. subroutine mkl_lapack_ssteqr_omp_offload_ilp64(compz, n, d, e, z,&
  860. ldz, work, &
  861. info) bind(c)
  862. character*1, intent(in) :: compz
  863. integer, intent(in) :: n
  864. integer, intent(in) :: ldz
  865. integer, intent(out) :: info
  866. real, intent(inout) :: d(*)
  867. real, intent(inout) :: e(*)
  868. real, intent(inout) :: z(ldz,*)
  869. real, intent(out) :: work(*)
  870. end subroutine mkl_lapack_ssteqr_omp_offload_ilp64
  871. subroutine mkl_lapack_zsteqr_omp_offload_ilp64(compz, n, d, e, z,&
  872. ldz, work, &
  873. info) bind(c)
  874. character*1, intent(in) :: compz
  875. integer, intent(in) :: n
  876. integer, intent(in) :: ldz
  877. integer, intent(out) :: info
  878. double precision, intent(inout) :: d(*)
  879. double precision, intent(inout) :: e(*)
  880. complex*16, intent(inout) :: z(ldz,*)
  881. double precision, intent(out) :: work(*)
  882. end subroutine mkl_lapack_zsteqr_omp_offload_ilp64
  883. subroutine mkl_lapack_dsyev_omp_offload_ilp64(jobz, uplo, n, a, &
  884. lda, w, work, &
  885. lwork, &
  886. info) bind(c)
  887. character*1, intent(in) :: jobz
  888. character*1, intent(in) :: uplo
  889. integer, intent(in) :: n
  890. integer, intent(in) :: lda
  891. integer, intent(in) :: lwork
  892. integer, intent(out) :: info
  893. double precision, intent(inout) :: a(lda,*)
  894. double precision, intent(out) :: w(*)
  895. double precision, intent(out) :: work(*)
  896. end subroutine mkl_lapack_dsyev_omp_offload_ilp64
  897. subroutine mkl_lapack_ssyev_omp_offload_ilp64(jobz, uplo, n, a, &
  898. lda, w, work, &
  899. lwork, &
  900. info) bind(c)
  901. character*1, intent(in) :: jobz
  902. character*1, intent(in) :: uplo
  903. integer, intent(in) :: n
  904. integer, intent(in) :: lda
  905. integer, intent(in) :: lwork
  906. integer, intent(out) :: info
  907. real, intent(inout) :: a(lda,*)
  908. real, intent(out) :: w(*)
  909. real, intent(out) :: work(*)
  910. end subroutine mkl_lapack_ssyev_omp_offload_ilp64
  911. subroutine mkl_lapack_dsyevd_omp_offload_ilp64(jobz, uplo, n, a, &
  912. lda, w, work, &
  913. lwork, iwork, &
  914. liwork, &
  915. info) bind(c)
  916. character*1, intent(in) :: jobz
  917. character*1, intent(in) :: uplo
  918. integer, intent(in) :: n
  919. integer, intent(in) :: lda
  920. integer, intent(in) :: lwork
  921. integer, intent(in) :: liwork
  922. integer, intent(out) :: info
  923. double precision, intent(inout) :: a(lda,*)
  924. double precision, intent(out) :: w(*)
  925. double precision, intent(out) :: work(*)
  926. integer, intent(out) :: iwork(*)
  927. end subroutine mkl_lapack_dsyevd_omp_offload_ilp64
  928. subroutine mkl_lapack_ssyevd_omp_offload_ilp64(jobz, uplo, n, a, &
  929. lda, w, work, &
  930. lwork, iwork, &
  931. liwork, &
  932. info) bind(c)
  933. character*1, intent(in) :: jobz
  934. character*1, intent(in) :: uplo
  935. integer, intent(in) :: n
  936. integer, intent(in) :: lda
  937. integer, intent(in) :: lwork
  938. integer, intent(in) :: liwork
  939. integer, intent(out) :: info
  940. real, intent(inout) :: a(lda,*)
  941. real, intent(out) :: w(*)
  942. real, intent(out) :: work(*)
  943. integer, intent(out) :: iwork(*)
  944. end subroutine mkl_lapack_ssyevd_omp_offload_ilp64
  945. subroutine mkl_lapack_dsyevx_omp_offload_ilp64(jobz, range, uplo,&
  946. n, a, lda, vl, vu,&
  947. il, iu, abstol, m,&
  948. w, z, ldz, work, &
  949. lwork, iwork, &
  950. ifail, &
  951. info) bind(c)
  952. character*1, intent(in) :: jobz
  953. character*1, intent(in) :: range
  954. character*1, intent(in) :: uplo
  955. integer, intent(in) :: n
  956. integer, intent(in) :: lda
  957. double precision, intent(in) :: vl
  958. double precision, intent(in) :: vu
  959. integer, intent(in) :: il
  960. integer, intent(in) :: iu
  961. double precision, intent(in) :: abstol
  962. integer, intent(out) :: m
  963. integer, intent(in) :: ldz
  964. integer, intent(in) :: lwork
  965. integer, intent(out) :: info
  966. double precision, intent(inout) :: a(lda,*)
  967. double precision, intent(out) :: w(*)
  968. double precision, intent(out) :: z(ldz,*)
  969. double precision, intent(out) :: work(*)
  970. integer, intent(out) :: iwork(*)
  971. integer, intent(out) :: ifail(*)
  972. end subroutine mkl_lapack_dsyevx_omp_offload_ilp64
  973. subroutine mkl_lapack_ssyevx_omp_offload_ilp64(jobz, range, uplo,&
  974. n, a, lda, vl, vu,&
  975. il, iu, abstol, m,&
  976. w, z, ldz, work, &
  977. lwork, iwork, &
  978. ifail, &
  979. info) bind(c)
  980. character*1, intent(in) :: jobz
  981. character*1, intent(in) :: range
  982. character*1, intent(in) :: uplo
  983. integer, intent(in) :: n
  984. integer, intent(in) :: lda
  985. real, intent(in) :: vl
  986. real, intent(in) :: vu
  987. integer, intent(in) :: il
  988. integer, intent(in) :: iu
  989. real, intent(in) :: abstol
  990. integer, intent(out) :: m
  991. integer, intent(in) :: ldz
  992. integer, intent(in) :: lwork
  993. integer, intent(out) :: info
  994. real, intent(inout) :: a(lda,*)
  995. real, intent(out) :: w(*)
  996. real, intent(out) :: z(ldz,*)
  997. real, intent(out) :: work(*)
  998. integer, intent(out) :: iwork(*)
  999. integer, intent(out) :: ifail(*)
  1000. end subroutine mkl_lapack_ssyevx_omp_offload_ilp64
  1001. subroutine mkl_lapack_dsygvd_omp_offload_ilp64(itype, jobz, uplo,&
  1002. n, a, lda, b, ldb,&
  1003. w, work, lwork, &
  1004. iwork, liwork, &
  1005. info) bind(c)
  1006. integer, intent(in) :: itype
  1007. character*1, intent(in) :: jobz
  1008. character*1, intent(in) :: uplo
  1009. integer, intent(in) :: n
  1010. integer, intent(in) :: lda
  1011. integer, intent(in) :: ldb
  1012. integer, intent(in) :: lwork
  1013. integer, intent(in) :: liwork
  1014. integer, intent(out) :: info
  1015. double precision, intent(inout) :: a(lda,*)
  1016. double precision, intent(inout) :: b(ldb,*)
  1017. double precision, intent(out) :: w(*)
  1018. double precision, intent(out) :: work(*)
  1019. integer, intent(out) :: iwork(*)
  1020. end subroutine mkl_lapack_dsygvd_omp_offload_ilp64
  1021. subroutine mkl_lapack_ssygvd_omp_offload_ilp64(itype, jobz, uplo,&
  1022. n, a, lda, b, ldb,&
  1023. w, work, lwork, &
  1024. iwork, liwork, &
  1025. info) bind(c)
  1026. integer, intent(in) :: itype
  1027. character*1, intent(in) :: jobz
  1028. character*1, intent(in) :: uplo
  1029. integer, intent(in) :: n
  1030. integer, intent(in) :: lda
  1031. integer, intent(in) :: ldb
  1032. integer, intent(in) :: lwork
  1033. integer, intent(in) :: liwork
  1034. integer, intent(out) :: info
  1035. real, intent(inout) :: a(lda,*)
  1036. real, intent(inout) :: b(ldb,*)
  1037. real, intent(out) :: w(*)
  1038. real, intent(out) :: work(*)
  1039. integer, intent(out) :: iwork(*)
  1040. end subroutine mkl_lapack_ssygvd_omp_offload_ilp64
  1041. subroutine mkl_lapack_dsygvx_omp_offload_ilp64(itype, jobz, &
  1042. range, uplo, n, a,&
  1043. lda, b, ldb, vl, &
  1044. vu, il, iu, &
  1045. abstol, m, w, z, &
  1046. ldz, work, lwork, &
  1047. iwork, ifail, &
  1048. info) bind(c)
  1049. integer, intent(in) :: itype
  1050. character*1, intent(in) :: jobz
  1051. character*1, intent(in) :: range
  1052. character*1, intent(in) :: uplo
  1053. integer, intent(in) :: n
  1054. integer, intent(in) :: lda
  1055. integer, intent(in) :: ldb
  1056. double precision, intent(in) :: vl
  1057. double precision, intent(in) :: vu
  1058. integer, intent(in) :: il
  1059. integer, intent(in) :: iu
  1060. double precision, intent(in) :: abstol
  1061. integer, intent(out) :: m
  1062. integer, intent(in) :: ldz
  1063. integer, intent(in) :: lwork
  1064. integer, intent(out) :: info
  1065. double precision, intent(inout) :: a(lda,*)
  1066. double precision, intent(inout) :: b(ldb,*)
  1067. double precision, intent(out) :: w(*)
  1068. double precision, intent(out) :: z(ldz,*)
  1069. double precision, intent(out) :: work(*)
  1070. integer, intent(out) :: iwork(*)
  1071. integer, intent(out) :: ifail(*)
  1072. end subroutine mkl_lapack_dsygvx_omp_offload_ilp64
  1073. subroutine mkl_lapack_ssygvx_omp_offload_ilp64(itype, jobz, &
  1074. range, uplo, n, a,&
  1075. lda, b, ldb, vl, &
  1076. vu, il, iu, &
  1077. abstol, m, w, z, &
  1078. ldz, work, lwork, &
  1079. iwork, ifail, &
  1080. info) bind(c)
  1081. integer, intent(in) :: itype
  1082. character*1, intent(in) :: jobz
  1083. character*1, intent(in) :: range
  1084. character*1, intent(in) :: uplo
  1085. integer, intent(in) :: n
  1086. integer, intent(in) :: lda
  1087. integer, intent(in) :: ldb
  1088. real, intent(in) :: vl
  1089. real, intent(in) :: vu
  1090. integer, intent(in) :: il
  1091. integer, intent(in) :: iu
  1092. real, intent(in) :: abstol
  1093. integer, intent(out) :: m
  1094. integer, intent(in) :: ldz
  1095. integer, intent(in) :: lwork
  1096. integer, intent(out) :: info
  1097. real, intent(inout) :: a(lda,*)
  1098. real, intent(inout) :: b(ldb,*)
  1099. real, intent(out) :: w(*)
  1100. real, intent(out) :: z(ldz,*)
  1101. real, intent(out) :: work(*)
  1102. integer, intent(out) :: iwork(*)
  1103. integer, intent(out) :: ifail(*)
  1104. end subroutine mkl_lapack_ssygvx_omp_offload_ilp64
  1105. subroutine mkl_lapack_dsytrd_omp_offload_ilp64(uplo, n, a, lda, &
  1106. d, e, tau, work, &
  1107. lwork, &
  1108. info) bind(c)
  1109. character*1, intent(in) :: uplo
  1110. integer, intent(in) :: n
  1111. integer, intent(in) :: lda
  1112. integer, intent(in) :: lwork
  1113. integer, intent(out) :: info
  1114. double precision, intent(inout) :: a(lda,*)
  1115. double precision, intent(out) :: d(*)
  1116. double precision, intent(out) :: e(*)
  1117. double precision, intent(out) :: tau(*)
  1118. double precision, intent(out) :: work(*)
  1119. end subroutine mkl_lapack_dsytrd_omp_offload_ilp64
  1120. subroutine mkl_lapack_ssytrd_omp_offload_ilp64(uplo, n, a, lda, &
  1121. d, e, tau, work, &
  1122. lwork, &
  1123. info) bind(c)
  1124. character*1, intent(in) :: uplo
  1125. integer, intent(in) :: n
  1126. integer, intent(in) :: lda
  1127. integer, intent(in) :: lwork
  1128. integer, intent(out) :: info
  1129. real, intent(inout) :: a(lda,*)
  1130. real, intent(out) :: d(*)
  1131. real, intent(out) :: e(*)
  1132. real, intent(out) :: tau(*)
  1133. real, intent(out) :: work(*)
  1134. end subroutine mkl_lapack_ssytrd_omp_offload_ilp64
  1135. subroutine mkl_lapack_ctrtri_omp_offload_ilp64(uplo, diag, n, a, &
  1136. lda, info) bind(c)
  1137. character*1, intent(in) :: uplo
  1138. character*1, intent(in) :: diag
  1139. integer, intent(in) :: n
  1140. integer, intent(in) :: lda
  1141. integer, intent(out) :: info
  1142. complex*8, intent(inout) :: a(lda,*)
  1143. end subroutine mkl_lapack_ctrtri_omp_offload_ilp64
  1144. subroutine mkl_lapack_dtrtri_omp_offload_ilp64(uplo, diag, n, a, &
  1145. lda, info) bind(c)
  1146. character*1, intent(in) :: uplo
  1147. character*1, intent(in) :: diag
  1148. integer, intent(in) :: n
  1149. integer, intent(in) :: lda
  1150. integer, intent(out) :: info
  1151. double precision, intent(inout) :: a(lda,*)
  1152. end subroutine mkl_lapack_dtrtri_omp_offload_ilp64
  1153. subroutine mkl_lapack_strtri_omp_offload_ilp64(uplo, diag, n, a, &
  1154. lda, info) bind(c)
  1155. character*1, intent(in) :: uplo
  1156. character*1, intent(in) :: diag
  1157. integer, intent(in) :: n
  1158. integer, intent(in) :: lda
  1159. integer, intent(out) :: info
  1160. real, intent(inout) :: a(lda,*)
  1161. end subroutine mkl_lapack_strtri_omp_offload_ilp64
  1162. subroutine mkl_lapack_ztrtri_omp_offload_ilp64(uplo, diag, n, a, &
  1163. lda, info) bind(c)
  1164. character*1, intent(in) :: uplo
  1165. character*1, intent(in) :: diag
  1166. integer, intent(in) :: n
  1167. integer, intent(in) :: lda
  1168. integer, intent(out) :: info
  1169. complex*16, intent(inout) :: a(lda,*)
  1170. end subroutine mkl_lapack_ztrtri_omp_offload_ilp64
  1171. subroutine mkl_lapack_ctrtrs_omp_offload_ilp64(uplo, trans, diag,&
  1172. n, nrhs, a, lda, &
  1173. b, ldb, &
  1174. info) bind(c)
  1175. character*1, intent(in) :: uplo
  1176. character*1, intent(in) :: trans
  1177. character*1, intent(in) :: diag
  1178. integer, intent(in) :: n
  1179. integer, intent(in) :: nrhs
  1180. integer, intent(in) :: lda
  1181. integer, intent(in) :: ldb
  1182. integer, intent(out) :: info
  1183. complex*8, intent(in) :: a(lda,*)
  1184. complex*8, intent(inout) :: b(ldb,*)
  1185. end subroutine mkl_lapack_ctrtrs_omp_offload_ilp64
  1186. subroutine mkl_lapack_dtrtrs_omp_offload_ilp64(uplo, trans, diag,&
  1187. n, nrhs, a, lda, &
  1188. b, ldb, &
  1189. info) bind(c)
  1190. character*1, intent(in) :: uplo
  1191. character*1, intent(in) :: trans
  1192. character*1, intent(in) :: diag
  1193. integer, intent(in) :: n
  1194. integer, intent(in) :: nrhs
  1195. integer, intent(in) :: lda
  1196. integer, intent(in) :: ldb
  1197. integer, intent(out) :: info
  1198. double precision, intent(in) :: a(lda,*)
  1199. double precision, intent(inout) :: b(ldb,*)
  1200. end subroutine mkl_lapack_dtrtrs_omp_offload_ilp64
  1201. subroutine mkl_lapack_strtrs_omp_offload_ilp64(uplo, trans, diag,&
  1202. n, nrhs, a, lda, &
  1203. b, ldb, &
  1204. info) bind(c)
  1205. character*1, intent(in) :: uplo
  1206. character*1, intent(in) :: trans
  1207. character*1, intent(in) :: diag
  1208. integer, intent(in) :: n
  1209. integer, intent(in) :: nrhs
  1210. integer, intent(in) :: lda
  1211. integer, intent(in) :: ldb
  1212. integer, intent(out) :: info
  1213. real, intent(in) :: a(lda,*)
  1214. real, intent(inout) :: b(ldb,*)
  1215. end subroutine mkl_lapack_strtrs_omp_offload_ilp64
  1216. subroutine mkl_lapack_ztrtrs_omp_offload_ilp64(uplo, trans, diag,&
  1217. n, nrhs, a, lda, &
  1218. b, ldb, &
  1219. info) bind(c)
  1220. character*1, intent(in) :: uplo
  1221. character*1, intent(in) :: trans
  1222. character*1, intent(in) :: diag
  1223. integer, intent(in) :: n
  1224. integer, intent(in) :: nrhs
  1225. integer, intent(in) :: lda
  1226. integer, intent(in) :: ldb
  1227. integer, intent(out) :: info
  1228. complex*16, intent(in) :: a(lda,*)
  1229. complex*16, intent(inout) :: b(ldb,*)
  1230. end subroutine mkl_lapack_ztrtrs_omp_offload_ilp64
  1231. subroutine mkl_lapack_cungqr_omp_offload_ilp64(m, n, k, a, lda, &
  1232. tau, work, lwork, &
  1233. info) bind(c)
  1234. integer, intent(in) :: m
  1235. integer, intent(in) :: n
  1236. integer, intent(in) :: k
  1237. integer, intent(in) :: lda
  1238. integer, intent(in) :: lwork
  1239. integer, intent(out) :: info
  1240. complex*8, intent(inout) :: a(lda,*)
  1241. complex*8, intent(in) :: tau(*)
  1242. complex*8, intent(out) :: work(*)
  1243. end subroutine mkl_lapack_cungqr_omp_offload_ilp64
  1244. subroutine mkl_lapack_zungqr_omp_offload_ilp64(m, n, k, a, lda, &
  1245. tau, work, lwork, &
  1246. info) bind(c)
  1247. integer, intent(in) :: m
  1248. integer, intent(in) :: n
  1249. integer, intent(in) :: k
  1250. integer, intent(in) :: lda
  1251. integer, intent(in) :: lwork
  1252. integer, intent(out) :: info
  1253. complex*16, intent(inout) :: a(lda,*)
  1254. complex*16, intent(in) :: tau(*)
  1255. complex*16, intent(out) :: work(*)
  1256. end subroutine mkl_lapack_zungqr_omp_offload_ilp64
  1257. subroutine mkl_lapack_cunmqr_omp_offload_ilp64(side, trans, m, n,&
  1258. k, a, lda, tau, c,&
  1259. ldc, work, lwork, &
  1260. info) bind(c)
  1261. character*1, intent(in) :: side
  1262. character*1, intent(in) :: trans
  1263. integer, intent(in) :: m
  1264. integer, intent(in) :: n
  1265. integer, intent(in) :: k
  1266. integer, intent(in) :: lda
  1267. integer, intent(in) :: ldc
  1268. integer, intent(in) :: lwork
  1269. integer, intent(out) :: info
  1270. complex*8, intent(in) :: a(lda,*)
  1271. complex*8, intent(in) :: tau(*)
  1272. complex*8, intent(inout) :: c(ldc,*)
  1273. complex*8, intent(out) :: work(*)
  1274. end subroutine mkl_lapack_cunmqr_omp_offload_ilp64
  1275. subroutine mkl_lapack_zunmqr_omp_offload_ilp64(side, trans, m, n,&
  1276. k, a, lda, tau, c,&
  1277. ldc, work, lwork, &
  1278. info) bind(c)
  1279. character*1, intent(in) :: side
  1280. character*1, intent(in) :: trans
  1281. integer, intent(in) :: m
  1282. integer, intent(in) :: n
  1283. integer, intent(in) :: k
  1284. integer, intent(in) :: lda
  1285. integer, intent(in) :: ldc
  1286. integer, intent(in) :: lwork
  1287. integer, intent(out) :: info
  1288. complex*16, intent(in) :: a(lda,*)
  1289. complex*16, intent(in) :: tau(*)
  1290. complex*16, intent(inout) :: c(ldc,*)
  1291. complex*16, intent(out) :: work(*)
  1292. end subroutine mkl_lapack_zunmqr_omp_offload_ilp64
  1293. subroutine mkl_lapack_cgetrs_batch_strided_omp_offload_ilp64(trans,&
  1294. n, nrhs, a, &
  1295. lda, stride_a,&
  1296. ipiv, &
  1297. stride_ipiv, &
  1298. b, ldb, &
  1299. stride_b, &
  1300. batch_size, &
  1301. info) bind(c)
  1302. character*1, intent(in) :: trans
  1303. integer, intent(in) :: n
  1304. integer, intent(in) :: nrhs
  1305. integer, intent(in) :: lda
  1306. integer, intent(in) :: stride_a
  1307. integer, intent(in) :: stride_ipiv
  1308. integer, intent(in) :: ldb
  1309. integer, intent(in) :: stride_b
  1310. integer, intent(in) :: batch_size
  1311. complex*8, intent(in) :: a(stride_a,*)
  1312. integer, intent(in) :: ipiv(stride_ipiv,*)
  1313. complex*8, intent(inout) :: b(stride_b,*)
  1314. integer, intent(out) :: info(*)
  1315. end subroutine mkl_lapack_cgetrs_batch_strided_omp_offload_ilp64
  1316. subroutine mkl_lapack_dgetrs_batch_strided_omp_offload_ilp64(trans,&
  1317. n, nrhs, a, &
  1318. lda, stride_a,&
  1319. ipiv, &
  1320. stride_ipiv, &
  1321. b, ldb, &
  1322. stride_b, &
  1323. batch_size, &
  1324. info) bind(c)
  1325. character*1, intent(in) :: trans
  1326. integer, intent(in) :: n
  1327. integer, intent(in) :: nrhs
  1328. integer, intent(in) :: lda
  1329. integer, intent(in) :: stride_a
  1330. integer, intent(in) :: stride_ipiv
  1331. integer, intent(in) :: ldb
  1332. integer, intent(in) :: stride_b
  1333. integer, intent(in) :: batch_size
  1334. double precision, intent(in) :: a(stride_a,*)
  1335. integer, intent(in) :: ipiv(stride_ipiv,*)
  1336. double precision, intent(inout) :: b(stride_b,*)
  1337. integer, intent(out) :: info(*)
  1338. end subroutine mkl_lapack_dgetrs_batch_strided_omp_offload_ilp64
  1339. subroutine mkl_lapack_sgetrs_batch_strided_omp_offload_ilp64(trans,&
  1340. n, nrhs, a, &
  1341. lda, stride_a,&
  1342. ipiv, &
  1343. stride_ipiv, &
  1344. b, ldb, &
  1345. stride_b, &
  1346. batch_size, &
  1347. info) bind(c)
  1348. character*1, intent(in) :: trans
  1349. integer, intent(in) :: n
  1350. integer, intent(in) :: nrhs
  1351. integer, intent(in) :: lda
  1352. integer, intent(in) :: stride_a
  1353. integer, intent(in) :: stride_ipiv
  1354. integer, intent(in) :: ldb
  1355. integer, intent(in) :: stride_b
  1356. integer, intent(in) :: batch_size
  1357. real, intent(in) :: a(stride_a,*)
  1358. integer, intent(in) :: ipiv(stride_ipiv,*)
  1359. real, intent(inout) :: b(stride_b,*)
  1360. integer, intent(out) :: info(*)
  1361. end subroutine mkl_lapack_sgetrs_batch_strided_omp_offload_ilp64
  1362. subroutine mkl_lapack_zgetrs_batch_strided_omp_offload_ilp64(trans,&
  1363. n, nrhs, a, &
  1364. lda, stride_a,&
  1365. ipiv, &
  1366. stride_ipiv, &
  1367. b, ldb, &
  1368. stride_b, &
  1369. batch_size, &
  1370. info) bind(c)
  1371. character*1, intent(in) :: trans
  1372. integer, intent(in) :: n
  1373. integer, intent(in) :: nrhs
  1374. integer, intent(in) :: lda
  1375. integer, intent(in) :: stride_a
  1376. integer, intent(in) :: stride_ipiv
  1377. integer, intent(in) :: ldb
  1378. integer, intent(in) :: stride_b
  1379. integer, intent(in) :: batch_size
  1380. complex*16, intent(in) :: a(stride_a,*)
  1381. integer, intent(in) :: ipiv(stride_ipiv,*)
  1382. complex*16, intent(inout) :: b(stride_b,*)
  1383. integer, intent(out) :: info(*)
  1384. end subroutine mkl_lapack_zgetrs_batch_strided_omp_offload_ilp64
  1385. subroutine mkl_lapack_cgetrfnp_batch_strided_omp_offload_ilp64(m,&
  1386. n, a, lda, &
  1387. stride_a, &
  1388. batch_size, &
  1389. info) bind(c)
  1390. integer, intent(in) :: m
  1391. integer, intent(in) :: n
  1392. integer, intent(in) :: lda
  1393. integer, intent(in) :: stride_a
  1394. integer, intent(in) :: batch_size
  1395. complex*8, intent(inout) :: a(stride_a,*)
  1396. integer, intent(out) :: info(*)
  1397. end subroutine mkl_lapack_cgetrfnp_batch_strided_omp_offload_ilp64
  1398. subroutine mkl_lapack_dgetrfnp_batch_strided_omp_offload_ilp64(m,&
  1399. n, a, lda, &
  1400. stride_a, &
  1401. batch_size, &
  1402. info) bind(c)
  1403. integer, intent(in) :: m
  1404. integer, intent(in) :: n
  1405. integer, intent(in) :: lda
  1406. integer, intent(in) :: stride_a
  1407. integer, intent(in) :: batch_size
  1408. double precision, intent(inout) :: a(stride_a,*)
  1409. integer, intent(out) :: info(*)
  1410. end subroutine mkl_lapack_dgetrfnp_batch_strided_omp_offload_ilp64
  1411. subroutine mkl_lapack_sgetrfnp_batch_strided_omp_offload_ilp64(m,&
  1412. n, a, lda, &
  1413. stride_a, &
  1414. batch_size, &
  1415. info) bind(c)
  1416. integer, intent(in) :: m
  1417. integer, intent(in) :: n
  1418. integer, intent(in) :: lda
  1419. integer, intent(in) :: stride_a
  1420. integer, intent(in) :: batch_size
  1421. real, intent(inout) :: a(stride_a,*)
  1422. integer, intent(out) :: info(*)
  1423. end subroutine mkl_lapack_sgetrfnp_batch_strided_omp_offload_ilp64
  1424. subroutine mkl_lapack_zgetrfnp_batch_strided_omp_offload_ilp64(m,&
  1425. n, a, lda, &
  1426. stride_a, &
  1427. batch_size, &
  1428. info) bind(c)
  1429. integer, intent(in) :: m
  1430. integer, intent(in) :: n
  1431. integer, intent(in) :: lda
  1432. integer, intent(in) :: stride_a
  1433. integer, intent(in) :: batch_size
  1434. complex*16, intent(inout) :: a(stride_a,*)
  1435. integer, intent(out) :: info(*)
  1436. end subroutine mkl_lapack_zgetrfnp_batch_strided_omp_offload_ilp64
  1437. subroutine mkl_lapack_cgetrsnp_batch_strided_omp_offload_ilp64(trans,&
  1438. n, nrhs, a, &
  1439. lda, stride_a,&
  1440. b, ldb, &
  1441. stride_b, &
  1442. batch_size, &
  1443. info) bind(c)
  1444. character*1, intent(in) :: trans
  1445. integer, intent(in) :: n
  1446. integer, intent(in) :: nrhs
  1447. integer, intent(in) :: lda
  1448. integer, intent(in) :: stride_a
  1449. integer, intent(in) :: ldb
  1450. integer, intent(in) :: stride_b
  1451. integer, intent(in) :: batch_size
  1452. complex*8, intent(in) :: a(stride_a,*)
  1453. complex*8, intent(inout) :: b(stride_b,*)
  1454. integer, intent(out) :: info(*)
  1455. end subroutine mkl_lapack_cgetrsnp_batch_strided_omp_offload_ilp64
  1456. subroutine mkl_lapack_dgetrsnp_batch_strided_omp_offload_ilp64(trans,&
  1457. n, nrhs, a, &
  1458. lda, stride_a,&
  1459. b, ldb, &
  1460. stride_b, &
  1461. batch_size, &
  1462. info) bind(c)
  1463. character*1, intent(in) :: trans
  1464. integer, intent(in) :: n
  1465. integer, intent(in) :: nrhs
  1466. integer, intent(in) :: lda
  1467. integer, intent(in) :: stride_a
  1468. integer, intent(in) :: ldb
  1469. integer, intent(in) :: stride_b
  1470. integer, intent(in) :: batch_size
  1471. double precision, intent(in) :: a(stride_a,*)
  1472. double precision, intent(inout) :: b(stride_b,*)
  1473. integer, intent(out) :: info(*)
  1474. end subroutine mkl_lapack_dgetrsnp_batch_strided_omp_offload_ilp64
  1475. subroutine mkl_lapack_sgetrsnp_batch_strided_omp_offload_ilp64(trans,&
  1476. n, nrhs, a, &
  1477. lda, stride_a,&
  1478. b, ldb, &
  1479. stride_b, &
  1480. batch_size, &
  1481. info) bind(c)
  1482. character*1, intent(in) :: trans
  1483. integer, intent(in) :: n
  1484. integer, intent(in) :: nrhs
  1485. integer, intent(in) :: lda
  1486. integer, intent(in) :: stride_a
  1487. integer, intent(in) :: ldb
  1488. integer, intent(in) :: stride_b
  1489. integer, intent(in) :: batch_size
  1490. real, intent(in) :: a(stride_a,*)
  1491. real, intent(inout) :: b(stride_b,*)
  1492. integer, intent(out) :: info(*)
  1493. end subroutine mkl_lapack_sgetrsnp_batch_strided_omp_offload_ilp64
  1494. subroutine mkl_lapack_zgetrsnp_batch_strided_omp_offload_ilp64(trans,&
  1495. n, nrhs, a, &
  1496. lda, stride_a,&
  1497. b, ldb, &
  1498. stride_b, &
  1499. batch_size, &
  1500. info) bind(c)
  1501. character*1, intent(in) :: trans
  1502. integer, intent(in) :: n
  1503. integer, intent(in) :: nrhs
  1504. integer, intent(in) :: lda
  1505. integer, intent(in) :: stride_a
  1506. integer, intent(in) :: ldb
  1507. integer, intent(in) :: stride_b
  1508. integer, intent(in) :: batch_size
  1509. complex*16, intent(in) :: a(stride_a,*)
  1510. complex*16, intent(inout) :: b(stride_b,*)
  1511. integer, intent(out) :: info(*)
  1512. end subroutine mkl_lapack_zgetrsnp_batch_strided_omp_offload_ilp64
  1513. subroutine mkl_lapack_dpotrf_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1514. character*1, intent(in) :: uplo
  1515. integer, intent(in) :: n
  1516. double precision, intent(inout) :: a(lda,*)
  1517. integer, intent(in) :: lda
  1518. integer, intent(out) :: info
  1519. end subroutine mkl_lapack_dpotrf_omp_offload_ilp64
  1520. subroutine mkl_lapack_spotrf_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1521. character*1, intent(in) :: uplo
  1522. integer, intent(in) :: n
  1523. real, intent(inout) :: a(lda,*)
  1524. integer, intent(in) :: lda
  1525. integer, intent(out) :: info
  1526. end subroutine mkl_lapack_spotrf_omp_offload_ilp64
  1527. subroutine mkl_lapack_cpotrf_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1528. character*1, intent(in) :: uplo
  1529. integer, intent(in) :: n
  1530. complex*8, intent(inout) :: a(lda,*)
  1531. integer, intent(in) :: lda
  1532. integer, intent(out) :: info
  1533. end subroutine mkl_lapack_cpotrf_omp_offload_ilp64
  1534. subroutine mkl_lapack_zpotrf_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1535. character*1, intent(in) :: uplo
  1536. integer, intent(in) :: n
  1537. complex*16, intent(inout) :: a(lda,*)
  1538. integer, intent(in) :: lda
  1539. integer, intent(out) :: info
  1540. end subroutine mkl_lapack_zpotrf_omp_offload_ilp64
  1541. subroutine mkl_lapack_dpotri_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1542. character*1, intent(in) :: uplo
  1543. integer, intent(in) :: n
  1544. double precision, intent(inout) :: a(lda,*)
  1545. integer, intent(in) :: lda
  1546. integer, intent(out) :: info
  1547. end subroutine mkl_lapack_dpotri_omp_offload_ilp64
  1548. subroutine mkl_lapack_spotri_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1549. character*1, intent(in) :: uplo
  1550. integer, intent(in) :: n
  1551. real, intent(inout) :: a(lda,*)
  1552. integer, intent(in) :: lda
  1553. integer, intent(out) :: info
  1554. end subroutine mkl_lapack_spotri_omp_offload_ilp64
  1555. subroutine mkl_lapack_cpotri_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1556. character*1, intent(in) :: uplo
  1557. integer, intent(in) :: n
  1558. complex*8, intent(inout) :: a(lda,*)
  1559. integer, intent(in) :: lda
  1560. integer, intent(out) :: info
  1561. end subroutine mkl_lapack_cpotri_omp_offload_ilp64
  1562. subroutine mkl_lapack_zpotri_omp_offload_ilp64(uplo, n, a, lda, info) bind(c)
  1563. character*1, intent(in) :: uplo
  1564. integer, intent(in) :: n
  1565. complex*16, intent(inout) :: a(lda,*)
  1566. integer, intent(in) :: lda
  1567. integer, intent(out) :: info
  1568. end subroutine mkl_lapack_zpotri_omp_offload_ilp64
  1569. subroutine mkl_lapack_dpotrs_omp_offload_ilp64(uplo, n, nrhs, a, lda, b, ldb, info) bind(c)
  1570. character*1, intent(in) :: uplo
  1571. integer, intent(in) :: n, nrhs, lda, ldb
  1572. double precision, intent(in) :: a(lda,*)
  1573. double precision, intent(inout) :: b(ldb,*)
  1574. integer, intent(out) :: info
  1575. end subroutine mkl_lapack_dpotrs_omp_offload_ilp64
  1576. subroutine mkl_lapack_spotrs_omp_offload_ilp64(uplo, n, nrhs, a, lda, b, ldb, info) bind(c)
  1577. character*1, intent(in) :: uplo
  1578. integer, intent(in) :: n, nrhs, lda, ldb
  1579. real, intent(in) :: a(lda,*)
  1580. real, intent(inout) :: b(ldb,*)
  1581. integer, intent(out) :: info
  1582. end subroutine mkl_lapack_spotrs_omp_offload_ilp64
  1583. subroutine mkl_lapack_cpotrs_omp_offload_ilp64(uplo, n, nrhs, a, lda, b, ldb, info) bind(c)
  1584. character*1, intent(in) :: uplo
  1585. integer, intent(in) :: n, nrhs, lda, ldb
  1586. complex*8, intent(in) :: a(lda,*)
  1587. complex*8, intent(inout) :: b(ldb,*)
  1588. integer, intent(out) :: info
  1589. end subroutine mkl_lapack_cpotrs_omp_offload_ilp64
  1590. subroutine mkl_lapack_zpotrs_omp_offload_ilp64(uplo, n, nrhs, a, lda, b, ldb, info) bind(c)
  1591. character*1, intent(in) :: uplo
  1592. integer, intent(in) :: n, nrhs, lda, ldb
  1593. complex*16, intent(in) :: a(lda,*)
  1594. complex*16, intent(inout) :: b(ldb,*)
  1595. integer, intent(out) :: info
  1596. end subroutine mkl_lapack_zpotrs_omp_offload_ilp64
  1597. end interface