mkl_trans.fi 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. !===============================================================================
  2. ! Copyright 2008-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 BLAS-like
  16. ! extensions
  17. !*******************************************************************************
  18. INTERFACE
  19. subroutine MKL_SIMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  20. &cols, alpha, AB, lda, ldb, stride, batch_size )
  21. character*1 ordering, trans
  22. integer rows, cols, lda, ldb, stride, batch_size
  23. real alpha
  24. real AB( * )
  25. END
  26. END INTERFACE
  27. INTERFACE
  28. subroutine MKL_DIMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  29. &cols, alpha, AB, lda, ldb, stride, batch_size )
  30. character*1 ordering, trans
  31. integer rows, cols, lda, ldb, stride, batch_size
  32. double precision alpha
  33. double precision AB( * )
  34. END
  35. END INTERFACE
  36. INTERFACE
  37. subroutine MKL_CIMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  38. &cols, alpha, AB, lda, ldb, stride, batch_size )
  39. character*1 ordering, trans
  40. integer rows, cols, lda, ldb, stride, batch_size
  41. complex alpha
  42. complex AB( * )
  43. END
  44. END INTERFACE
  45. INTERFACE
  46. subroutine MKL_ZIMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  47. &cols, alpha, AB, lda, ldb, stride, batch_size )
  48. character*1 ordering, trans
  49. integer rows, cols, lda, ldb, stride, batch_size
  50. double complex alpha
  51. double complex AB( * )
  52. END
  53. END INTERFACE
  54. INTERFACE
  55. subroutine MKL_CIMATCOPY_BATCH ( ordering, trans_array, &
  56. &rows_array, cols_array, alpha_array, AB_array, lda_array, &
  57. &ldb_array, group_count, group_size )
  58. use, intrinsic :: ISO_C_BINDING
  59. character*1 ordering
  60. character*1 trans_array(*)
  61. integer rows_array(*), cols_array(*)
  62. complex alpha_array(*)
  63. integer(KIND=C_INTPTR_T) AB_array(*)
  64. integer lda_array(*), ldb_array(*)
  65. integer group_count, group_size(*)
  66. END
  67. END INTERFACE
  68. INTERFACE
  69. subroutine MKL_SIMATCOPY_BATCH ( ordering, trans_array, &
  70. &rows_array, cols_array, alpha_array, AB_array, lda_array, &
  71. &ldb_array, group_count, group_size )
  72. use, intrinsic :: ISO_C_BINDING
  73. character*1 ordering
  74. character*1 trans_array(*)
  75. integer rows_array(*), cols_array(*)
  76. real alpha_array(*)
  77. integer(KIND=C_INTPTR_T) AB_array(*)
  78. integer lda_array(*), ldb_array(*)
  79. integer group_count, group_size(*)
  80. END
  81. END INTERFACE
  82. INTERFACE
  83. subroutine MKL_ZIMATCOPY_BATCH ( ordering, trans_array, &
  84. &rows_array, cols_array, alpha_array, AB_array, lda_array, &
  85. &ldb_array, group_count, group_size )
  86. use, intrinsic :: ISO_C_BINDING
  87. character*1 ordering
  88. character*1 trans_array(*)
  89. integer rows_array(*), cols_array(*)
  90. double complex alpha_array(*)
  91. integer(KIND=C_INTPTR_T) AB_array(*)
  92. integer lda_array(*), ldb_array(*)
  93. integer group_count, group_size(*)
  94. END
  95. END INTERFACE
  96. INTERFACE
  97. subroutine MKL_DIMATCOPY_BATCH ( ordering, trans_array, &
  98. &rows_array, cols_array, alpha_array, AB_array, lda_array, &
  99. &ldb_array, group_count, group_size )
  100. use, intrinsic :: ISO_C_BINDING
  101. character*1 ordering
  102. character*1 trans_array(*)
  103. integer rows_array(*), cols_array(*)
  104. double precision alpha_array(*)
  105. integer(KIND=C_INTPTR_T) AB_array(*)
  106. integer lda_array(*), ldb_array(*)
  107. integer group_count, group_size(*)
  108. END
  109. END INTERFACE
  110. INTERFACE
  111. subroutine MKL_SOMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  112. &cols, alpha, A, lda, stridea, B, ldb, strideb, batch_size )
  113. character*1 ordering, trans
  114. integer rows, cols, lda, ldb
  115. integer stridea, strideb, batch_size
  116. real alpha
  117. real A( * )
  118. real B( * )
  119. END
  120. END INTERFACE
  121. INTERFACE
  122. subroutine MKL_DOMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  123. &cols, alpha, A, lda, stridea, B, ldb, strideb, batch_size )
  124. character*1 ordering, trans
  125. integer rows, cols, lda, ldb
  126. integer stridea, strideb, batch_size
  127. double precision alpha
  128. double precision A( * )
  129. double precision B( * )
  130. END
  131. END INTERFACE
  132. INTERFACE
  133. subroutine MKL_COMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  134. &cols, alpha, A, lda, stridea, B, ldb, strideb, batch_size )
  135. character*1 ordering, trans
  136. integer rows, cols, lda, ldb
  137. integer stridea, strideb, batch_size
  138. complex alpha
  139. complex A( * )
  140. complex B( * )
  141. END
  142. END INTERFACE
  143. INTERFACE
  144. subroutine MKL_ZOMATCOPY_BATCH_STRIDED ( ordering, trans, rows, &
  145. &cols, alpha, A, lda, stridea, B, ldb, strideb, batch_size )
  146. character*1 ordering, trans
  147. integer rows, cols, lda, ldb
  148. integer stridea, strideb, batch_size
  149. double complex alpha
  150. double complex A( * )
  151. double complex B( * )
  152. END
  153. END INTERFACE
  154. INTERFACE
  155. subroutine MKL_COMATCOPY_BATCH ( ordering, trans_array, &
  156. &rows_array, cols_array, alpha_array, A_array, lda_array, B_array, &
  157. &ldb_array, group_count, group_size )
  158. use, intrinsic :: ISO_C_BINDING
  159. character*1 ordering
  160. character*1 trans_array(*)
  161. integer rows_array(*), cols_array(*)
  162. complex alpha_array(*)
  163. integer(KIND=C_INTPTR_T) A_array(*)
  164. integer lda_array(*)
  165. integer(KIND=C_INTPTR_T) B_array(*)
  166. integer ldb_array(*)
  167. integer group_count, group_size(*)
  168. END
  169. END INTERFACE
  170. INTERFACE
  171. subroutine MKL_SOMATCOPY_BATCH ( ordering, trans_array, &
  172. &rows_array, cols_array, alpha_array, A_array, lda_array, B_array, &
  173. &ldb_array, group_count, group_size )
  174. use, intrinsic :: ISO_C_BINDING
  175. character*1 ordering
  176. character*1 trans_array(*)
  177. integer rows_array(*), cols_array(*)
  178. real alpha_array(*)
  179. integer(KIND=C_INTPTR_T) A_array(*)
  180. integer lda_array(*)
  181. integer(KIND=C_INTPTR_T) B_array(*)
  182. integer ldb_array(*)
  183. integer group_count, group_size(*)
  184. END
  185. END INTERFACE
  186. INTERFACE
  187. subroutine MKL_ZOMATCOPY_BATCH ( ordering, trans_array, &
  188. &rows_array, cols_array, alpha_array, A_array, lda_array, B_array, &
  189. &ldb_array, group_count, group_size )
  190. use, intrinsic :: ISO_C_BINDING
  191. character*1 ordering
  192. character*1 trans_array(*)
  193. integer rows_array(*), cols_array(*)
  194. double complex alpha_array(*)
  195. integer(KIND=C_INTPTR_T) A_array(*)
  196. integer lda_array(*)
  197. integer(KIND=C_INTPTR_T) B_array(*)
  198. integer ldb_array(*)
  199. integer group_count, group_size(*)
  200. END
  201. END INTERFACE
  202. INTERFACE
  203. subroutine MKL_DOMATCOPY_BATCH ( ordering, trans_array, &
  204. &rows_array, cols_array, alpha_array, A_array, lda_array, B_array, &
  205. &ldb_array, group_count, group_size )
  206. use, intrinsic :: ISO_C_BINDING
  207. character*1 ordering
  208. character*1 trans_array(*)
  209. integer rows_array(*), cols_array(*)
  210. double precision alpha_array(*)
  211. integer(KIND=C_INTPTR_T) A_array(*)
  212. integer lda_array(*)
  213. integer(KIND=C_INTPTR_T) B_array(*)
  214. integer ldb_array(*)
  215. integer group_count, group_size(*)
  216. END
  217. END INTERFACE
  218. INTERFACE
  219. subroutine MKL_SOMATADD_BATCH_STRIDED ( ordering, transa, transb, &
  220. &rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, &
  221. &C, ldc, stridec, batch_size )
  222. character*1 ordering, transa, transb
  223. integer rows, cols, lda, ldb, ldc
  224. integer stridea, strideb, stridec, batch_size
  225. real alpha, beta
  226. real A( * )
  227. real B( * )
  228. real C( * )
  229. END
  230. END INTERFACE
  231. INTERFACE
  232. subroutine MKL_DOMATADD_BATCH_STRIDED ( ordering, transa, transb, &
  233. &rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, &
  234. &C, ldc, stridec, batch_size )
  235. character*1 ordering, transa, transb
  236. integer rows, cols, lda, ldb, ldc
  237. integer stridea, strideb, stridec, batch_size
  238. double precision alpha, beta
  239. double precision A( * )
  240. double precision B( * )
  241. double precision C( * )
  242. END
  243. END INTERFACE
  244. INTERFACE
  245. subroutine MKL_COMATADD_BATCH_STRIDED ( ordering, transa, transb, &
  246. &rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, &
  247. &C, ldc, stridec, batch_size )
  248. character*1 ordering, transa, transb
  249. integer rows, cols, lda, ldb, ldc
  250. integer stridea, strideb, stridec, batch_size
  251. complex alpha, beta
  252. complex A( * )
  253. complex B( * )
  254. complex C( * )
  255. END
  256. END INTERFACE
  257. INTERFACE
  258. subroutine MKL_ZOMATADD_BATCH_STRIDED ( ordering, transa, transb, &
  259. &rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, &
  260. &C, ldc, stridec, batch_size )
  261. character*1 ordering, transa, transb
  262. integer rows, cols, lda, ldb, ldc
  263. integer stridea, strideb, stridec, batch_size
  264. double complex alpha, beta
  265. double complex A( * )
  266. double complex B( * )
  267. double complex C( * )
  268. END
  269. END INTERFACE
  270. INTERFACE
  271. subroutine MKL_SIMATCOPY ( ordering, trans, rows, cols, alpha, &
  272. &AB, lda, ldb )
  273. character*1 ordering, trans
  274. integer rows, cols, lda, ldb
  275. real alpha
  276. real AB( * )
  277. END
  278. END INTERFACE
  279. INTERFACE
  280. subroutine MKL_DIMATCOPY ( ordering, trans, rows, cols, alpha, &
  281. &AB, lda, ldb )
  282. character*1 ordering, trans
  283. integer rows, cols, lda, ldb
  284. double precision alpha
  285. double precision AB( * )
  286. END
  287. END INTERFACE
  288. INTERFACE
  289. subroutine MKL_CIMATCOPY ( ordering, trans, rows, cols, alpha, &
  290. &AB, lda, ldb )
  291. character*1 ordering, trans
  292. integer rows, cols, lda, ldb
  293. complex alpha
  294. complex AB( * )
  295. END
  296. END INTERFACE
  297. INTERFACE
  298. subroutine MKL_ZIMATCOPY ( ordering, trans, rows, cols, alpha, &
  299. &AB, lda, ldb )
  300. character*1 ordering, trans
  301. integer rows, cols, lda, ldb
  302. double complex alpha
  303. double complex AB( * )
  304. END
  305. END INTERFACE
  306. INTERFACE
  307. subroutine MKL_SOMATCOPY ( ordering, trans, rows, cols, alpha, &
  308. &A, lda, B, ldb )
  309. character*1 ordering, trans
  310. integer rows, cols, lda, ldb
  311. real alpha
  312. real A( * )
  313. real B( * )
  314. END
  315. END INTERFACE
  316. INTERFACE
  317. subroutine MKL_DOMATCOPY ( ordering, trans, rows, cols, alpha, &
  318. &A, lda, B, ldb )
  319. character*1 ordering, trans
  320. integer rows, cols, lda, ldb
  321. double precision alpha
  322. double precision A( * )
  323. double precision B( * )
  324. END
  325. END INTERFACE
  326. INTERFACE
  327. subroutine MKL_COMATCOPY ( ordering, trans, rows, cols, alpha, &
  328. &A, lda, B, ldb )
  329. character*1 ordering, trans
  330. integer rows, cols, lda, ldb
  331. complex alpha
  332. complex A( * )
  333. complex B( * )
  334. END
  335. END INTERFACE
  336. INTERFACE
  337. subroutine MKL_ZOMATCOPY ( ordering, trans, rows, cols, alpha, &
  338. &A, lda, B, ldb )
  339. character*1 ordering, trans
  340. integer rows, cols, lda, ldb
  341. double complex alpha
  342. double complex A( * )
  343. double complex B( * )
  344. END
  345. END INTERFACE
  346. INTERFACE
  347. subroutine MKL_SOMATCOPY2 ( ordering, trans, rows, cols, alpha, &
  348. &A, lda, stridea, B, ldb, strideb )
  349. character*1 ordering, trans
  350. integer rows, cols, lda, stridea, ldb, strideb
  351. real alpha
  352. real A( * )
  353. real B( * )
  354. END
  355. END INTERFACE
  356. INTERFACE
  357. subroutine MKL_DOMATCOPY2 ( ordering, trans, rows, cols, alpha, &
  358. &A, lda, stridea, B, ldb, strideb )
  359. character*1 ordering, trans
  360. integer rows, cols, lda, stridea, ldb, strideb
  361. double precision alpha
  362. double precision A( * )
  363. double precision B( * )
  364. END
  365. END INTERFACE
  366. INTERFACE
  367. subroutine MKL_COMATCOPY2 ( ordering, trans, rows, cols, alpha, &
  368. &A, lda, stridea, B, ldb, strideb )
  369. character*1 ordering, trans
  370. integer rows, cols, lda, stridea, ldb, strideb
  371. complex alpha
  372. complex A( * )
  373. complex B( * )
  374. END
  375. END INTERFACE
  376. INTERFACE
  377. subroutine MKL_ZOMATCOPY2 ( ordering, trans, rows, cols, alpha, &
  378. &A, lda, stridea, B, ldb, strideb )
  379. character*1 ordering, trans
  380. integer rows, cols, lda, stridea, ldb, strideb
  381. double complex alpha
  382. double complex A( * )
  383. double complex B( * )
  384. END
  385. END INTERFACE
  386. INTERFACE
  387. subroutine MKL_SOMATADD ( ordering, transa, transb, rows, cols, &
  388. &alpha, A, lda, beta, B, ldb, C, ldc )
  389. character*1 ordering, transa, transb
  390. integer rows, cols, lda, ldb, ldc
  391. real alpha, beta
  392. real A( * )
  393. real B( * )
  394. real C( * )
  395. END
  396. END INTERFACE
  397. INTERFACE
  398. subroutine MKL_DOMATADD ( ordering, transa, transb, rows, cols, &
  399. &alpha, A, lda, beta, B, ldb, C, ldc )
  400. character*1 ordering, transa, transb
  401. integer rows, cols, lda, ldb, ldc
  402. double precision alpha, beta
  403. double precision A( * )
  404. double precision B( * )
  405. double precision C( * )
  406. END
  407. END INTERFACE
  408. INTERFACE
  409. subroutine MKL_COMATADD ( ordering, transa, transb, rows, cols, &
  410. &alpha, A, lda, beta, B, ldb, C, ldc )
  411. character*1 ordering, transa, transb
  412. integer rows, cols, lda, ldb, ldc
  413. complex alpha, beta
  414. complex A( * )
  415. complex B( * )
  416. complex C( * )
  417. END
  418. END INTERFACE
  419. INTERFACE
  420. subroutine MKL_ZOMATADD ( ordering, transa, transb, rows, cols, &
  421. &alpha, A, lda, beta, B, ldb, C, ldc )
  422. character*1 ordering, transa, transb
  423. integer rows, cols, lda, ldb, ldc
  424. double complex alpha, beta
  425. double complex A( * )
  426. double complex B( * )
  427. double complex C( * )
  428. END
  429. END INTERFACE
  430. !*******************************************************************************