mkl_blas.fi 76 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491
  1. !===============================================================================
  2. ! Copyright 1999-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 routines
  16. !*******************************************************************************
  17. INTERFACE
  18. subroutine xerbla(srname,info)
  19. character*(*) srname
  20. integer*4 info
  21. END
  22. END INTERFACE
  23. INTERFACE
  24. logical function lsame(ca,cb)
  25. character*(*) ca,cb
  26. END
  27. END INTERFACE
  28. INTERFACE
  29. real function scabs1(c)
  30. complex c
  31. END
  32. END INTERFACE
  33. INTERFACE
  34. subroutine saxpy(n,sa,sx,incx,sy,incy)
  35. real sx(*),sy(*),sa
  36. integer incx,incy,n
  37. END
  38. END INTERFACE
  39. INTERFACE
  40. subroutine saxpy_batch_strided(n,sa,sx,incx,stridex, &
  41. &sy,incy,stridey,batch_size)
  42. real sx(*),sy(*),sa
  43. integer incx,incy,n
  44. integer stridex,stridey,batch_size
  45. END
  46. END INTERFACE
  47. INTERFACE
  48. subroutine saxpy_batch(n_array,alpha_array,x_array,incx_array, &
  49. &y_array,incy_array,group_count,group_size_array)
  50. use, intrinsic :: ISO_C_BINDING
  51. real alpha_array(*)
  52. integer incx_array(*),incy_array(*),n_array(*)
  53. integer group_count,group_size_array(*)
  54. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  55. END
  56. END INTERFACE
  57. INTERFACE
  58. subroutine saxpby(n,sa,sx,incx,sb,sy,incy)
  59. real sx(*),sy(*),sa,sb
  60. integer incx,incy,n
  61. END
  62. END INTERFACE
  63. INTERFACE
  64. subroutine scopy(n,sx,incx,sy,incy)
  65. real sx(*),sy(*)
  66. integer incx,incy,n
  67. END
  68. END INTERFACE
  69. INTERFACE
  70. subroutine scopy_batch_strided(n,x,incx,stridex, &
  71. &y,incy,stridey,batch_size)
  72. real x(*),y(*)
  73. integer n,incx,incy
  74. integer stridex,stridey,batch_size
  75. END
  76. END INTERFACE
  77. INTERFACE
  78. subroutine scopy_batch(n_array,x_array,incx_array, &
  79. &y_array,incy_array,group_count,group_size_array)
  80. use, intrinsic :: ISO_C_BINDING
  81. integer incx_array(*),incy_array(*),n_array(*)
  82. integer group_count,group_size_array(*)
  83. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  84. END
  85. END INTERFACE
  86. INTERFACE
  87. real function sdot(n,sx,incx,sy,incy)
  88. real sx(*),sy(*)
  89. integer incx,incy,n
  90. END
  91. END INTERFACE
  92. INTERFACE
  93. real function sdsdot(n,sb,sx,incx,sy,incy)
  94. real sb,sx(*),sy(*)
  95. integer incx,incy,n
  96. END
  97. END INTERFACE
  98. INTERFACE
  99. subroutine sscal(n,sa,sx,incx)
  100. real sa,sx(*)
  101. integer incx,n
  102. END
  103. END INTERFACE
  104. INTERFACE
  105. subroutine sswap (n,sx,incx,sy,incy)
  106. real sx(*),sy(*)
  107. integer incx,incy,n
  108. END
  109. END INTERFACE
  110. INTERFACE
  111. real function snrm2 ( n, x, incx )
  112. integer incx, n
  113. real x( * )
  114. END
  115. END INTERFACE
  116. INTERFACE
  117. integer function isamax(n,sx,incx)
  118. real sx(*)
  119. integer incx,n
  120. END
  121. END INTERFACE
  122. INTERFACE
  123. integer function isamin(n,sx,incx)
  124. real sx(*)
  125. integer incx, n
  126. END
  127. END INTERFACE
  128. INTERFACE
  129. subroutine srot (n,sx,incx,sy,incy,c,s)
  130. real sx(*),sy(*),c,s
  131. integer incx,incy,n
  132. END
  133. END INTERFACE
  134. INTERFACE
  135. subroutine srotg(sa,sb,c,s)
  136. real sa,sb,c,s
  137. END
  138. END INTERFACE
  139. INTERFACE
  140. real function sasum(n,sx,incx)
  141. real sx(*)
  142. integer incx,n
  143. END
  144. END INTERFACE
  145. INTERFACE
  146. subroutine saxpyi( nz, a, x, indx, y )
  147. integer nz, indx (*)
  148. real y (*), x (*), a
  149. END
  150. END INTERFACE
  151. INTERFACE
  152. real function sdoti( nz, x, indx, y )
  153. integer nz, indx (*)
  154. real x (*), y (*)
  155. END
  156. END INTERFACE
  157. INTERFACE
  158. subroutine sgthr( nz, y, x, indx )
  159. integer nz, indx (*)
  160. real y (*), x (*)
  161. END
  162. END INTERFACE
  163. INTERFACE
  164. subroutine sgthrz( nz, y, x, indx )
  165. integer nz, indx (*)
  166. real y (*), x (*)
  167. END
  168. END INTERFACE
  169. INTERFACE
  170. subroutine sroti( nz, x, indx, y, c, s )
  171. integer nz, indx (*)
  172. real x (*), y (*), c, s
  173. END
  174. END INTERFACE
  175. INTERFACE
  176. subroutine srotm (n,sx,incx,sy,incy,sparam)
  177. real sx, sy, sparam
  178. integer n, incx, incy
  179. END
  180. END INTERFACE
  181. INTERFACE
  182. subroutine srotmg (sd1,sd2,sx1,sy1,sparam)
  183. real sd1, sd2, sx1, sy1, sparam
  184. END
  185. END INTERFACE
  186. INTERFACE
  187. subroutine ssctr ( nz, x, indx, y )
  188. integer nz, indx (*)
  189. real x (*), y (*)
  190. END
  191. END INTERFACE
  192. INTERFACE
  193. double precision function dcabs1(z)
  194. double complex z
  195. END
  196. END INTERFACE
  197. INTERFACE
  198. subroutine daxpy(n,da,dx,incx,dy,incy)
  199. double precision dx(*),dy(*),da
  200. integer incx,incy,n
  201. END
  202. END INTERFACE
  203. INTERFACE
  204. subroutine daxpy_batch_strided(n,sa,sx,incx,stridex, &
  205. &sy,incy,stridey,batch_size)
  206. double precision sx(*),sy(*),sa
  207. integer incx,incy,n
  208. integer stridex,stridey,batch_size
  209. END
  210. END INTERFACE
  211. INTERFACE
  212. subroutine daxpy_batch(n_array,alpha_array,x_array,incx_array, &
  213. &y_array,incy_array,group_count,group_size_array)
  214. use, intrinsic :: ISO_C_BINDING
  215. double precision alpha_array(*)
  216. integer incx_array(*),incy_array(*),n_array(*)
  217. integer group_count,group_size_array(*)
  218. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  219. END
  220. END INTERFACE
  221. INTERFACE
  222. subroutine daxpby(n,da,dx,incx,db,dy,incy)
  223. double precision dx(*),dy(*),da,db
  224. integer incx,incy,n
  225. END
  226. END INTERFACE
  227. INTERFACE
  228. subroutine dcopy(n,dx,incx,dy,incy)
  229. double precision dx(*),dy(*)
  230. integer incx,incy,n
  231. END
  232. END INTERFACE
  233. INTERFACE
  234. subroutine dcopy_batch_strided(n,x,incx,stridex, &
  235. &y,incy,stridey,batch_size)
  236. double precision x(*),y(*)
  237. integer n,incx,incy
  238. integer stridex,stridey,batch_size
  239. END
  240. END INTERFACE
  241. INTERFACE
  242. subroutine dcopy_batch(n_array,x_array,incx_array, &
  243. &y_array,incy_array,group_count,group_size_array)
  244. use, intrinsic :: ISO_C_BINDING
  245. integer incx_array(*),incy_array(*),n_array(*)
  246. integer group_count,group_size_array(*)
  247. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  248. END
  249. END INTERFACE
  250. INTERFACE
  251. double precision function ddot(n,dx,incx,dy,incy)
  252. double precision dx(*),dy(*)
  253. integer incx,incy,n
  254. END
  255. END INTERFACE
  256. INTERFACE
  257. double precision function dsdot(n,sx,incx,sy,incy)
  258. real sx(*),sy(*)
  259. integer incx,incy,n
  260. END
  261. END INTERFACE
  262. INTERFACE
  263. subroutine dscal(n,da,dx,incx)
  264. double precision da,dx(*)
  265. integer incx,n
  266. END
  267. END INTERFACE
  268. INTERFACE
  269. subroutine dswap (n,dx,incx,dy,incy)
  270. double precision dx(*),dy(*)
  271. integer incx,incy,n
  272. END
  273. END INTERFACE
  274. INTERFACE
  275. double precision function dnrm2 ( n, x, incx )
  276. integer incx, n
  277. double precision x( * )
  278. END
  279. END INTERFACE
  280. INTERFACE
  281. integer function idamax(n,dx,incx)
  282. double precision dx(*)
  283. integer incx,n
  284. END
  285. END INTERFACE
  286. INTERFACE
  287. integer function idamin(n,dx,incx)
  288. double precision dx(*)
  289. integer incx, n
  290. END
  291. END INTERFACE
  292. INTERFACE
  293. subroutine drot (n,dx,incx,dy,incy,c,s)
  294. double precision dx(*),dy(*),c,s
  295. integer incx,incy,n
  296. END
  297. END INTERFACE
  298. INTERFACE
  299. subroutine drotg(da,db,c,s)
  300. double precision da,db,c,s
  301. END
  302. END INTERFACE
  303. INTERFACE
  304. double precision function dasum(n,dx,incx)
  305. double precision dx(*)
  306. integer incx,n
  307. END
  308. END INTERFACE
  309. INTERFACE
  310. subroutine daxpyi( nz, a, x, indx, y )
  311. integer nz, indx (*)
  312. double precision y (*), x (*), a
  313. END
  314. END INTERFACE
  315. INTERFACE
  316. double precision function ddoti( nz, x, indx, y )
  317. integer nz, indx (*)
  318. double precision x (*), y (*)
  319. END
  320. END INTERFACE
  321. INTERFACE
  322. subroutine dgthr( nz, y, x, indx )
  323. integer nz, indx (*)
  324. double precision y (*), x (*)
  325. END
  326. END INTERFACE
  327. INTERFACE
  328. subroutine dgthrz( nz, y, x, indx )
  329. integer nz, indx (*)
  330. double precision y (*), x (*)
  331. END
  332. END INTERFACE
  333. INTERFACE
  334. subroutine droti( nz, x, indx, y, c, s )
  335. integer nz, indx (*)
  336. double precision x (*), y (*), c, s
  337. END
  338. END INTERFACE
  339. INTERFACE
  340. subroutine drotm(n,dx,incx,dy,incy,dparam)
  341. double precision dparam, dx, dy
  342. integer n,incx,incy
  343. END
  344. END INTERFACE
  345. INTERFACE
  346. subroutine drotmg(dd1,dd2,dx1,dy1,dparam)
  347. double precision dd1, dd2, dx1, dy1, dparam
  348. END
  349. END INTERFACE
  350. INTERFACE
  351. subroutine dsctr( nz, x, indx, y )
  352. integer nz, indx (*)
  353. double precision x (*), y (*)
  354. END
  355. END INTERFACE
  356. INTERFACE
  357. subroutine caxpy(n,ca,cx,incx,cy,incy)
  358. complex cx(*),cy(*),ca
  359. integer incx,incy,n
  360. END
  361. END INTERFACE
  362. INTERFACE
  363. subroutine caxpy_batch_strided(n,sa,sx,incx,stridex, &
  364. &sy,incy,stridey,batch_size)
  365. complex sx(*),sy(*),sa
  366. integer incx,incy,n
  367. integer stridex,stridey,batch_size
  368. END
  369. END INTERFACE
  370. INTERFACE
  371. subroutine caxpy_batch(n_array,alpha_array,x_array,incx_array, &
  372. &y_array,incy_array,group_count,group_size_array)
  373. use, intrinsic :: ISO_C_BINDING
  374. complex alpha_array(*)
  375. integer incx_array(*),incy_array(*),n_array(*)
  376. integer group_count,group_size_array(*)
  377. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  378. END
  379. END INTERFACE
  380. INTERFACE
  381. subroutine caxpby(n,ca,cx,incx,cb,cy,incy)
  382. complex cx(*),cy(*),ca,cb
  383. integer incx,incy,n
  384. END
  385. END INTERFACE
  386. INTERFACE
  387. subroutine ccopy(n,cx,incx,cy,incy)
  388. complex cx(*),cy(*)
  389. integer incx,incy,n
  390. END
  391. END INTERFACE
  392. INTERFACE
  393. subroutine ccopy_batch_strided(n,x,incx,stridex, &
  394. &y,incy,stridey,batch_size)
  395. complex x(*),y(*)
  396. integer n,incx,incy
  397. integer stridex,stridey,batch_size
  398. END
  399. END INTERFACE
  400. INTERFACE
  401. subroutine ccopy_batch(n_array,x_array,incx_array, &
  402. &y_array,incy_array,group_count,group_size_array)
  403. use, intrinsic :: ISO_C_BINDING
  404. integer incx_array(*),incy_array(*),n_array(*)
  405. integer group_count,group_size_array(*)
  406. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  407. END
  408. END INTERFACE
  409. INTERFACE
  410. complex function cdotc(n,cx,incx,cy,incy)
  411. complex cx(*),cy(*)
  412. integer incx,incy,n
  413. END
  414. END INTERFACE
  415. INTERFACE
  416. complex function cdotu(n,cx,incx,cy,incy)
  417. complex cx(*),cy(*)
  418. integer incx,incy,n
  419. END
  420. END INTERFACE
  421. INTERFACE
  422. subroutine cscal(n,ca,cx,incx)
  423. complex ca,cx(*)
  424. integer incx,n
  425. END
  426. END INTERFACE
  427. INTERFACE
  428. subroutine csscal(n,sa,cx,incx)
  429. complex cx(*)
  430. real sa
  431. integer incx,n
  432. END
  433. END INTERFACE
  434. INTERFACE
  435. subroutine cswap(n,cx,incx,cy,incy)
  436. complex cx(*),cy(*)
  437. integer incx,incy,n
  438. END
  439. END INTERFACE
  440. INTERFACE
  441. real function scnrm2( n, x, incx )
  442. integer incx, n
  443. complex x( * )
  444. END
  445. END INTERFACE
  446. INTERFACE
  447. integer function icamax(n,cx,incx)
  448. complex cx(*)
  449. integer incx,n
  450. END
  451. END INTERFACE
  452. INTERFACE
  453. integer function icamin(n,cx,incx)
  454. complex cx(*)
  455. integer incx, n
  456. END
  457. END INTERFACE
  458. INTERFACE
  459. subroutine csrot (n,sx,incx,sy,incy,c,s)
  460. integer n
  461. complex sx(*), sy(*)
  462. real c, s
  463. integer incx, incy
  464. END
  465. END INTERFACE
  466. INTERFACE
  467. subroutine crotg(ca,cb,c,s)
  468. complex ca,cb,s
  469. real c
  470. END
  471. END INTERFACE
  472. INTERFACE
  473. real function scasum(n,cx,incx)
  474. complex cx(*)
  475. integer incx,n
  476. END
  477. END INTERFACE
  478. INTERFACE
  479. subroutine caxpyi( nz, a, x, indx, y )
  480. integer nz, indx (*)
  481. complex y (*), x (*), a
  482. END
  483. END INTERFACE
  484. INTERFACE
  485. complex function cdotci( nz, x, indx, y )
  486. integer nz, indx (*)
  487. complex x (*), y (*)
  488. END
  489. END INTERFACE
  490. INTERFACE
  491. complex function cdotui( nz, x, indx, y )
  492. integer nz, indx (*)
  493. complex x (*), y (*)
  494. END
  495. END INTERFACE
  496. INTERFACE
  497. subroutine cgthr( nz, y, x, indx )
  498. integer nz, indx (*)
  499. complex y (*), x (*)
  500. END
  501. END INTERFACE
  502. INTERFACE
  503. subroutine cgthrz( nz, y, x, indx )
  504. integer nz, indx (*)
  505. complex y (*), x (*)
  506. END
  507. END INTERFACE
  508. INTERFACE
  509. subroutine csctr( nz, x, indx, y )
  510. integer nz, indx (*)
  511. complex x (*), y (*)
  512. END
  513. END INTERFACE
  514. INTERFACE
  515. subroutine zaxpy(n,za,zx,incx,zy,incy)
  516. double complex zx(*),zy(*),za
  517. integer incx,incy,n
  518. END
  519. END INTERFACE
  520. INTERFACE
  521. subroutine zaxpy_batch_strided(n,sa,sx,incx,stridex, &
  522. &sy,incy,stridey,batch_size)
  523. double complex sx(*),sy(*),sa
  524. integer incx,incy,n
  525. integer stridex,stridey,batch_size
  526. END
  527. END INTERFACE
  528. INTERFACE
  529. subroutine zaxpy_batch(n_array,alpha_array,x_array,incx_array, &
  530. &y_array,incy_array,group_count,group_size_array)
  531. use, intrinsic :: ISO_C_BINDING
  532. complex*16 alpha_array(*)
  533. integer incx_array(*),incy_array(*),n_array(*)
  534. integer group_count,group_size_array(*)
  535. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  536. END
  537. END INTERFACE
  538. INTERFACE
  539. subroutine zaxpby(n,za,zx,incx,zb,zy,incy)
  540. double complex zx(*),zy(*),za,zb
  541. integer incx,incy,n
  542. END
  543. END INTERFACE
  544. INTERFACE
  545. subroutine zcopy(n,zx,incx,zy,incy)
  546. double complex zx(*),zy(*)
  547. integer incx,incy,n
  548. END
  549. END INTERFACE
  550. INTERFACE
  551. subroutine zcopy_batch_strided(n,x,incx,stridex, &
  552. &y,incy,stridey,batch_size)
  553. double complex x(*),y(*)
  554. integer n,incx,incy
  555. integer stridex,stridey,batch_size
  556. END
  557. END INTERFACE
  558. INTERFACE
  559. subroutine zcopy_batch(n_array,x_array,incx_array, &
  560. &y_array,incy_array,group_count,group_size_array)
  561. use, intrinsic :: ISO_C_BINDING
  562. integer incx_array(*),incy_array(*),n_array(*)
  563. integer group_count,group_size_array(*)
  564. integer(KIND=C_INTPTR_T) x_array(*), y_array(*)
  565. END
  566. END INTERFACE
  567. INTERFACE
  568. double complex function zdotc(n,zx,incx,zy,incy)
  569. double complex zx(*),zy(*)
  570. integer incx,incy,n
  571. END
  572. END INTERFACE
  573. INTERFACE
  574. double complex function zdotu(n,zx,incx,zy,incy)
  575. double complex zx(*),zy(*)
  576. integer incx,incy,n
  577. END
  578. END INTERFACE
  579. INTERFACE
  580. subroutine zscal(n,za,zx,incx)
  581. double complex za,zx(*)
  582. integer incx,n
  583. END
  584. END INTERFACE
  585. INTERFACE
  586. subroutine zdscal(n,da,zx,incx)
  587. double complex zx(*)
  588. double precision da
  589. integer incx,n
  590. END
  591. END INTERFACE
  592. INTERFACE
  593. subroutine zswap (n,zx,incx,zy,incy)
  594. double complex zx(*),zy(*)
  595. integer incx,incy,n
  596. END
  597. END INTERFACE
  598. INTERFACE
  599. double precision function dznrm2( n, x, incx )
  600. integer incx, n
  601. complex*16 x( * )
  602. END
  603. END INTERFACE
  604. INTERFACE
  605. integer function izamax(n,zx,incx)
  606. double complex zx(*)
  607. integer incx,n
  608. END
  609. END INTERFACE
  610. INTERFACE
  611. integer function izamin(n,zx,incx)
  612. double complex zx(*)
  613. integer incx, n
  614. END
  615. END INTERFACE
  616. INTERFACE
  617. subroutine zdrot(n,dx,incx,dy,incy,c,s)
  618. double complex dx(1), dy(1)
  619. double precision c, s
  620. integer incx, incy, n
  621. END
  622. END INTERFACE
  623. INTERFACE
  624. subroutine zrotg(ca,cb,c,s)
  625. double complex ca,cb,s
  626. double precision c
  627. END
  628. END INTERFACE
  629. INTERFACE
  630. double precision function dzasum(n,zx,incx)
  631. double complex zx(*)
  632. integer incx,n
  633. END
  634. END INTERFACE
  635. INTERFACE
  636. subroutine zaxpyi( nz, a, x, indx, y )
  637. integer nz, indx (*)
  638. complex*16 y (*), x (*), a
  639. END
  640. END INTERFACE
  641. INTERFACE
  642. function zdotci( nz, x, indx, y )
  643. integer nz, indx (*)
  644. complex*16 x (*), y (*), zdotci
  645. END
  646. END INTERFACE
  647. INTERFACE
  648. function zdotui( nz, x, indx, y )
  649. integer nz, indx (*)
  650. complex*16 x (*), y (*), zdotui
  651. END
  652. END INTERFACE
  653. INTERFACE
  654. subroutine zgthr( nz, y, x, indx )
  655. integer nz, indx (*)
  656. complex*16 y (*), x (*)
  657. END
  658. END INTERFACE
  659. INTERFACE
  660. subroutine zgthrz( nz, y, x, indx )
  661. integer nz, indx (*)
  662. complex*16 y (*), x (*)
  663. END
  664. END INTERFACE
  665. INTERFACE
  666. subroutine zsctr( nz, x, indx, y )
  667. integer nz, indx (*)
  668. complex*16 x (*), y (*)
  669. END
  670. END INTERFACE
  671. INTERFACE
  672. subroutine sgemv ( trans, m, n, alpha, a, lda, x, incx, &
  673. &beta, y, incy )
  674. real alpha, beta
  675. integer incx, incy, lda, m, n
  676. character*1 trans
  677. real a( lda, * ), x( * ), y( * )
  678. END
  679. END INTERFACE
  680. INTERFACE
  681. subroutine sgem2vu ( m, n, alpha, a, lda, x1, incx1, &
  682. &x2, incx2, beta, y1, incy1, y2, incy2 )
  683. real alpha, beta
  684. integer incx1, incx2, incy1, incy2, lda, m, n
  685. real a( lda, * ), x1( * ), y1( * ), &
  686. &x2( * ), y2( * )
  687. END
  688. END INTERFACE
  689. INTERFACE
  690. subroutine sger ( m, n, alpha, x, incx, y, incy, a, lda )
  691. real alpha
  692. integer incx, incy, lda, m, n
  693. real a( lda, * ), x( * ), y( * )
  694. END
  695. END INTERFACE
  696. INTERFACE
  697. subroutine strsv ( uplo, trans, diag, n, a, lda, x, incx )
  698. integer incx, lda, n
  699. character*1 diag, trans, uplo
  700. real a( lda, * ), x( * )
  701. END
  702. END INTERFACE
  703. INTERFACE
  704. subroutine sgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  705. &beta, y, incy )
  706. real alpha, beta
  707. integer incx, incy, kl, ku, lda, m, n
  708. character*1 trans
  709. real a( lda, * ), x( * ), y( * )
  710. END
  711. END INTERFACE
  712. INTERFACE
  713. subroutine ssbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  714. &beta, y, incy )
  715. real alpha, beta
  716. integer incx, incy, k, lda, n
  717. character*1 uplo
  718. real a( lda, * ), x( * ), y( * )
  719. END
  720. END INTERFACE
  721. INTERFACE
  722. subroutine sspmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
  723. real alpha, beta
  724. integer incx, incy, n
  725. character*1 uplo
  726. real ap( * ), x( * ), y( * )
  727. END
  728. END INTERFACE
  729. INTERFACE
  730. subroutine ssymv ( uplo, n, alpha, a, lda, x, incx, &
  731. &beta, y, incy )
  732. real alpha, beta
  733. integer incx, incy, lda, n
  734. character*1 uplo
  735. real a( lda, * ), x( * ), y( * )
  736. END
  737. END INTERFACE
  738. INTERFACE
  739. subroutine strmv ( uplo, trans, diag, n, a, lda, x, incx )
  740. integer incx, lda, n
  741. character*1 diag, trans, uplo
  742. real a( lda, * ), x( * )
  743. END
  744. END INTERFACE
  745. INTERFACE
  746. subroutine stbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
  747. integer incx, k, lda, n
  748. character*1 diag, trans, uplo
  749. real a( lda, * ), x( * )
  750. END
  751. END INTERFACE
  752. INTERFACE
  753. subroutine stbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
  754. integer incx, k, lda, n
  755. character*1 diag, trans, uplo
  756. real a( lda, * ), x( * )
  757. END
  758. END INTERFACE
  759. INTERFACE
  760. subroutine stpmv ( uplo, trans, diag, n, ap, x, incx )
  761. integer incx, n
  762. character*1 diag, trans, uplo
  763. real ap( * ), x( * )
  764. END
  765. END INTERFACE
  766. INTERFACE
  767. subroutine stpsv ( uplo, trans, diag, n, ap, x, incx )
  768. integer incx, n
  769. character*1 diag, trans, uplo
  770. real ap( * ), x( * )
  771. END
  772. END INTERFACE
  773. INTERFACE
  774. subroutine ssyr ( uplo, n, alpha, x, incx, a, lda )
  775. real alpha
  776. integer incx, lda, n
  777. character*1 uplo
  778. real a( lda, * ), x( * )
  779. END
  780. END INTERFACE
  781. INTERFACE
  782. subroutine sspr ( uplo, n, alpha, x, incx, ap )
  783. real alpha
  784. integer incx, n
  785. character*1 uplo
  786. real ap( * ), x( * )
  787. END
  788. END INTERFACE
  789. INTERFACE
  790. subroutine sspr2 ( uplo, n, alpha, x, incx, y, incy, ap )
  791. real alpha
  792. integer incx, incy, n
  793. character*1 uplo
  794. real ap( * ), x( * ), y( * )
  795. END
  796. END INTERFACE
  797. INTERFACE
  798. subroutine ssyr2 ( uplo, n, alpha, x, incx, y, incy, a, lda )
  799. real alpha
  800. integer incx, incy, lda, n
  801. character*1 uplo
  802. real a( lda, * ), x( * ), y( * )
  803. END
  804. END INTERFACE
  805. INTERFACE
  806. subroutine dgemv ( trans, m, n, alpha, a, lda, x, incx, &
  807. &beta, y, incy )
  808. double precision alpha, beta
  809. integer incx, incy, lda, m, n
  810. character*1 trans
  811. double precision a( lda, * ), x( * ), y( * )
  812. END
  813. END INTERFACE
  814. INTERFACE
  815. subroutine dgem2vu ( m, n, alpha, a, lda, x1, incx1, &
  816. &x2, incx2, beta, y1, incy1, y2, incy2 )
  817. double precision alpha, beta
  818. integer incx1, incx2, incy1, incy2, lda, m, n
  819. double precision a( lda, * ), x1( * ), y1( * ), &
  820. &x2( * ), y2( * )
  821. END
  822. END INTERFACE
  823. INTERFACE
  824. subroutine dger ( m, n, alpha, x, incx, y, incy, a, lda )
  825. double precision alpha
  826. integer incx, incy, lda, m, n
  827. double precision a( lda, * ), x( * ), y( * )
  828. END
  829. END INTERFACE
  830. INTERFACE
  831. subroutine dtrsv ( uplo, trans, diag, n, a, lda, x, incx )
  832. integer incx, lda, n
  833. character*1 diag, trans, uplo
  834. double precision a( lda, * ), x( * )
  835. END
  836. END INTERFACE
  837. INTERFACE
  838. subroutine dgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  839. &beta, y, incy )
  840. double precision alpha, beta
  841. integer incx, incy, kl, ku, lda, m, n
  842. character*1 trans
  843. double precision a( lda, * ), x( * ), y( * )
  844. END
  845. END INTERFACE
  846. INTERFACE
  847. subroutine dsbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  848. &beta, y, incy )
  849. double precision alpha, beta
  850. integer incx, incy, k, lda, n
  851. character*1 uplo
  852. double precision a( lda, * ), x( * ), y( * )
  853. END
  854. END INTERFACE
  855. INTERFACE
  856. subroutine dspmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
  857. double precision alpha, beta
  858. integer incx, incy, n
  859. character*1 uplo
  860. double precision ap( * ), x( * ), y( * )
  861. END
  862. END INTERFACE
  863. INTERFACE
  864. subroutine dsymv ( uplo, n, alpha, a, lda, x, incx, &
  865. &beta, y, incy )
  866. double precision alpha, beta
  867. integer incx, incy, lda, n
  868. character*1 uplo
  869. double precision a( lda, * ), x( * ), y( * )
  870. END
  871. END INTERFACE
  872. INTERFACE
  873. subroutine dtrmv ( uplo, trans, diag, n, a, lda, x, incx )
  874. integer incx, lda, n
  875. character*1 diag, trans, uplo
  876. double precision a( lda, * ), x( * )
  877. END
  878. END INTERFACE
  879. INTERFACE
  880. subroutine dtbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
  881. integer incx, k, lda, n
  882. character*1 diag, trans, uplo
  883. double precision a( lda, * ), x( * )
  884. END
  885. END INTERFACE
  886. INTERFACE
  887. subroutine dtbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
  888. integer incx, k, lda, n
  889. character*1 diag, trans, uplo
  890. double precision a( lda, * ), x( * )
  891. END
  892. END INTERFACE
  893. INTERFACE
  894. subroutine dtpmv ( uplo, trans, diag, n, ap, x, incx )
  895. integer incx, n
  896. character*1 diag, trans, uplo
  897. double precision ap( * ), x( * )
  898. END
  899. END INTERFACE
  900. INTERFACE
  901. subroutine dtpsv ( uplo, trans, diag, n, ap, x, incx )
  902. integer incx, n
  903. character*1 diag, trans, uplo
  904. double precision ap( * ), x( * )
  905. END
  906. END INTERFACE
  907. INTERFACE
  908. subroutine dsyr ( uplo, n, alpha, x, incx, a, lda )
  909. double precision alpha
  910. integer incx, lda, n
  911. character*1 uplo
  912. double precision a( lda, * ), x( * )
  913. END
  914. END INTERFACE
  915. INTERFACE
  916. subroutine dspr ( uplo, n, alpha, x, incx, ap )
  917. double precision alpha
  918. integer incx, n
  919. character*1 uplo
  920. double precision ap( * ), x( * )
  921. END
  922. END INTERFACE
  923. INTERFACE
  924. subroutine dspr2 ( uplo, n, alpha, x, incx, y, incy, ap )
  925. double precision alpha
  926. integer incx, incy, n
  927. character*1 uplo
  928. double precision ap( * ), x( * ), y( * )
  929. END
  930. END INTERFACE
  931. INTERFACE
  932. subroutine dsyr2 ( uplo, n, alpha, x, incx, y, incy, a, lda )
  933. double precision alpha
  934. integer incx, incy, lda, n
  935. character*1 uplo
  936. double precision a( lda, * ), x( * ), y( * )
  937. END
  938. END INTERFACE
  939. INTERFACE
  940. subroutine cgemv ( trans, m, n, alpha, a, lda, x, incx, &
  941. &beta, y, incy )
  942. complex alpha, beta
  943. integer incx, incy, lda, m, n
  944. character*1 trans
  945. complex a( lda, * ), x( * ), y( * )
  946. END
  947. END INTERFACE
  948. INTERFACE
  949. subroutine scgemv ( trans, m, n, alpha, a, lda, x, incx, &
  950. &beta, y, incy )
  951. complex alpha, beta
  952. integer incx, incy, lda, m, n
  953. character*1 trans
  954. complex x( * ), y( * )
  955. real a( lda, * )
  956. END
  957. END INTERFACE
  958. INTERFACE
  959. subroutine cgem2vc ( m, n, alpha, a, lda, x1, incx1, &
  960. &x2, incx2, beta, y1, incy1, y2, incy2 )
  961. complex alpha, beta
  962. integer incx1, incx2, incy1, incy2, lda, m, n
  963. complex a( lda, * ), x1( * ), y1( * ), &
  964. &x2( * ), y2( * )
  965. END
  966. END INTERFACE
  967. INTERFACE
  968. subroutine cgerc ( m, n, alpha, x, incx, y, incy, a, lda )
  969. complex alpha
  970. integer incx, incy, lda, m, n
  971. complex a( lda, * ), x( * ), y( * )
  972. END
  973. END INTERFACE
  974. INTERFACE
  975. subroutine cgeru ( m, n, alpha, x, incx, y, incy, a, lda )
  976. complex alpha
  977. integer incx, incy, lda, m, n
  978. complex a( lda, * ), x( * ), y( * )
  979. END
  980. END INTERFACE
  981. INTERFACE
  982. subroutine ctrsv ( uplo, trans, diag, n, a, lda, x, incx )
  983. integer incx, lda, n
  984. character*1 diag, trans, uplo
  985. complex a( lda, * ), x( * )
  986. END
  987. END INTERFACE
  988. INTERFACE
  989. subroutine cgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  990. &beta, y, incy )
  991. complex alpha, beta
  992. integer incx, incy, kl, ku, lda, m, n
  993. character*1 trans
  994. complex a( lda, * ), x( * ), y( * )
  995. END
  996. END INTERFACE
  997. INTERFACE
  998. subroutine chbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  999. &beta, y, incy )
  1000. complex alpha, beta
  1001. integer incx, incy, k, lda, n
  1002. character*1 uplo
  1003. complex a( lda, * ), x( * ), y( * )
  1004. END
  1005. END INTERFACE
  1006. INTERFACE
  1007. subroutine chpmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
  1008. complex alpha, beta
  1009. integer incx, incy, n
  1010. character*1 uplo
  1011. complex ap( * ), x( * ), y( * )
  1012. END
  1013. END INTERFACE
  1014. INTERFACE
  1015. subroutine chemv ( uplo, n, alpha, a, lda, x, incx, &
  1016. &beta, y, incy )
  1017. complex alpha, beta
  1018. integer incx, incy, lda, n
  1019. character*1 uplo
  1020. complex a( lda, * ), x( * ), y( * )
  1021. END
  1022. END INTERFACE
  1023. INTERFACE
  1024. subroutine ctrmv ( uplo, trans, diag, n, a, lda, x, incx )
  1025. integer incx, lda, n
  1026. character*1 diag, trans, uplo
  1027. complex a( lda, * ), x( * )
  1028. END
  1029. END INTERFACE
  1030. INTERFACE
  1031. subroutine ctbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
  1032. integer incx, k, lda, n
  1033. character*1 diag, trans, uplo
  1034. complex a( lda, * ), x( * )
  1035. END
  1036. END INTERFACE
  1037. INTERFACE
  1038. subroutine ctbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
  1039. integer incx, k, lda, n
  1040. character*1 diag, trans, uplo
  1041. complex a( lda, * ), x( * )
  1042. END
  1043. END INTERFACE
  1044. INTERFACE
  1045. subroutine ctpmv ( uplo, trans, diag, n, ap, x, incx )
  1046. integer incx, n
  1047. character*1 diag, trans, uplo
  1048. complex ap( * ), x( * )
  1049. END
  1050. END INTERFACE
  1051. INTERFACE
  1052. subroutine ctpsv ( uplo, trans, diag, n, ap, x, incx )
  1053. integer incx, n
  1054. character*1 diag, trans, uplo
  1055. complex ap( * ), x( * )
  1056. END
  1057. END INTERFACE
  1058. INTERFACE
  1059. subroutine cher ( uplo, n, alpha, x, incx, a, lda )
  1060. real alpha
  1061. integer incx, lda, n
  1062. character*1 uplo
  1063. complex a( lda, * ), x( * )
  1064. END
  1065. END INTERFACE
  1066. INTERFACE
  1067. subroutine chpr ( uplo, n, alpha, x, incx, ap )
  1068. real alpha
  1069. integer incx, n
  1070. character*1 uplo
  1071. complex ap( * ), x( * )
  1072. END
  1073. END INTERFACE
  1074. INTERFACE
  1075. subroutine chpr2 ( uplo, n, alpha, x, incx, y, incy, ap )
  1076. complex alpha
  1077. integer incx, incy, n
  1078. character*1 uplo
  1079. complex ap( * ), x( * ), y( * )
  1080. END
  1081. END INTERFACE
  1082. INTERFACE
  1083. subroutine cher2 ( uplo, n, alpha, x, incx, y, incy, a, lda )
  1084. complex alpha
  1085. integer incx, incy, lda, n
  1086. character*1 uplo
  1087. complex a( lda, * ), x( * ), y( * )
  1088. END
  1089. END INTERFACE
  1090. INTERFACE
  1091. subroutine zgemv ( trans, m, n, alpha, a, lda, x, incx, &
  1092. &beta, y, incy )
  1093. complex*16 alpha, beta
  1094. integer incx, incy, lda, m, n
  1095. character*1 trans
  1096. complex*16 a( lda, * ), x( * ), y( * )
  1097. END
  1098. END INTERFACE
  1099. INTERFACE
  1100. subroutine dzgemv ( trans, m, n, alpha, a, lda, x, incx, &
  1101. &beta, y, incy )
  1102. complex*16 alpha, beta
  1103. integer incx, incy, lda, m, n
  1104. character*1 trans
  1105. complex*16 x( * ), y( * )
  1106. double precision a( lda, * )
  1107. END
  1108. END INTERFACE
  1109. INTERFACE
  1110. subroutine zgem2vc ( m, n, alpha, a, lda, x1, incx1, &
  1111. &x2, incx2, beta, y1, incy1, y2, incy2 )
  1112. complex*16 alpha, beta
  1113. integer incx1, incx2, incy1, incy2, lda, m, n
  1114. complex*16 a( lda, * ), x1( * ), y1( * ), &
  1115. &x2( * ), y2( * )
  1116. END
  1117. END INTERFACE
  1118. INTERFACE
  1119. subroutine zgerc ( m, n, alpha, x, incx, y, incy, a, lda )
  1120. complex*16 alpha
  1121. integer incx, incy, lda, m, n
  1122. complex*16 a( lda, * ), x( * ), y( * )
  1123. END
  1124. END INTERFACE
  1125. INTERFACE
  1126. subroutine zgeru ( m, n, alpha, x, incx, y, incy, a, lda )
  1127. complex*16 alpha
  1128. integer incx, incy, lda, m, n
  1129. complex*16 a( lda, * ), x( * ), y( * )
  1130. END
  1131. END INTERFACE
  1132. INTERFACE
  1133. subroutine ztrsv ( uplo, trans, diag, n, a, lda, x, incx )
  1134. integer incx, lda, n
  1135. character*1 diag, trans, uplo
  1136. complex*16 a( lda, * ), x( * )
  1137. END
  1138. END INTERFACE
  1139. INTERFACE
  1140. subroutine zgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, &
  1141. &beta, y, incy )
  1142. complex*16 alpha, beta
  1143. integer incx, incy, kl, ku, lda, m, n
  1144. character*1 trans
  1145. complex*16 a( lda, * ), x( * ), y( * )
  1146. END
  1147. END INTERFACE
  1148. INTERFACE
  1149. subroutine zhbmv ( uplo, n, k, alpha, a, lda, x, incx, &
  1150. &beta, y, incy )
  1151. complex*16 alpha, beta
  1152. integer incx, incy, k, lda, n
  1153. character*1 uplo
  1154. complex*16 a( lda, * ), x( * ), y( * )
  1155. END
  1156. END INTERFACE
  1157. INTERFACE
  1158. subroutine zhpmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
  1159. complex*16 alpha, beta
  1160. integer incx, incy, n
  1161. character*1 uplo
  1162. complex*16 ap( * ), x( * ), y( * )
  1163. END
  1164. END INTERFACE
  1165. INTERFACE
  1166. subroutine zhemv ( uplo, n, alpha, a, lda, x, incx, &
  1167. &beta, y, incy )
  1168. complex*16 alpha, beta
  1169. integer incx, incy, lda, n
  1170. character*1 uplo
  1171. complex*16 a( lda, * ), x( * ), y( * )
  1172. END
  1173. END INTERFACE
  1174. INTERFACE
  1175. subroutine ztrmv ( uplo, trans, diag, n, a, lda, x, incx )
  1176. integer incx, lda, n
  1177. character*1 diag, trans, uplo
  1178. complex*16 a( lda, * ), x( * )
  1179. END
  1180. END INTERFACE
  1181. INTERFACE
  1182. subroutine ztbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
  1183. integer incx, k, lda, n
  1184. character*1 diag, trans, uplo
  1185. complex*16 a( lda, * ), x( * )
  1186. END
  1187. END INTERFACE
  1188. INTERFACE
  1189. subroutine ztbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
  1190. integer incx, k, lda, n
  1191. character*1 diag, trans, uplo
  1192. complex*16 a( lda, * ), x( * )
  1193. END
  1194. END INTERFACE
  1195. INTERFACE
  1196. subroutine ztpmv ( uplo, trans, diag, n, ap, x, incx )
  1197. integer incx, n
  1198. character*1 diag, trans, uplo
  1199. complex*16 ap( * ), x( * )
  1200. END
  1201. END INTERFACE
  1202. INTERFACE
  1203. subroutine ztpsv ( uplo, trans, diag, n, ap, x, incx )
  1204. integer incx, n
  1205. character*1 diag, trans, uplo
  1206. complex*16 ap( * ), x( * )
  1207. END
  1208. END INTERFACE
  1209. INTERFACE
  1210. subroutine zher ( uplo, n, alpha, x, incx, a, lda )
  1211. double precision alpha
  1212. integer incx, lda, n
  1213. character*1 uplo
  1214. complex*16 a( lda, * ), x( * )
  1215. END
  1216. END INTERFACE
  1217. INTERFACE
  1218. subroutine zhpr ( uplo, n, alpha, x, incx, ap )
  1219. double precision alpha
  1220. integer incx, n
  1221. character*1 uplo
  1222. complex*16 ap( * ), x( * )
  1223. END
  1224. END INTERFACE
  1225. INTERFACE
  1226. subroutine zhpr2 ( uplo, n, alpha, x, incx, y, incy, ap )
  1227. complex*16 alpha
  1228. integer incx, incy, n
  1229. character*1 uplo
  1230. complex*16 ap( * ), x( * ), y( * )
  1231. END
  1232. END INTERFACE
  1233. INTERFACE
  1234. subroutine zher2 ( uplo, n, alpha, x, incx, y, incy, a, lda )
  1235. complex*16 alpha
  1236. integer incx, incy, lda, n
  1237. character*1 uplo
  1238. complex*16 a( lda, * ), x( * ), y( * )
  1239. END
  1240. END INTERFACE
  1241. INTERFACE
  1242. subroutine sgemm ( transa, transb, m, n, k, alpha, a, lda, &
  1243. &b, ldb, beta, c, ldc )
  1244. character*1 transa, transb
  1245. integer m, n, k, lda, ldb, ldc
  1246. real alpha, beta
  1247. real a( lda, * ), b( ldb, * ), c( ldc, * )
  1248. END
  1249. END INTERFACE
  1250. INTERFACE
  1251. subroutine sgemm_batch_strided ( transa, transb, m, n, k, &
  1252. &alpha, a, lda, stridea, b, ldb, strideb, beta, c, ldc, &
  1253. &stridec, batch_size )
  1254. character*1 transa, transb
  1255. integer m, n, k, lda, ldb, ldc, batch_size
  1256. integer stridea, strideb, stridec
  1257. real alpha, beta
  1258. real a( lda, * ), b( ldb, * ), c( ldc, * )
  1259. END
  1260. END INTERFACE
  1261. INTERFACE
  1262. subroutine sgemm_batch ( transa_array, transb_array, m_array, &
  1263. &n_array, k_array, alpha_array, a_array, lda_array, b_array, &
  1264. &ldb_array, beta_array, c_array, ldc_array, group_count, &
  1265. &group_size )
  1266. use, intrinsic :: ISO_C_BINDING
  1267. character*1 transa_array(*), transb_array(*)
  1268. integer m_array(*), n_array(*), k_array(*)
  1269. integer lda_array(*), ldb_array(*), ldc_array(*)
  1270. real alpha_array(*), beta_array(*)
  1271. integer(KIND=C_INTPTR_T) a_array(*), b_array(*), c_array(*)
  1272. integer group_count, group_size(*)
  1273. END
  1274. END INTERFACE
  1275. INTERFACE
  1276. subroutine ssymm ( side, uplo, m, n, alpha, a, lda, b, ldb, &
  1277. &beta, c, ldc )
  1278. character*1 side, uplo
  1279. integer m, n, lda, ldb, ldc
  1280. real alpha, beta
  1281. real a( lda, * ), b( ldb, * ), c( ldc, * )
  1282. END
  1283. END INTERFACE
  1284. INTERFACE
  1285. subroutine ssyrk ( uplo, trans, n, k, alpha, a, lda, &
  1286. &beta, c, ldc )
  1287. character*1 uplo, trans
  1288. integer n, k, lda, ldc
  1289. real alpha, beta
  1290. real a( lda, * ), c( ldc, * )
  1291. END
  1292. END INTERFACE
  1293. INTERFACE
  1294. subroutine ssyrk_batch_strided ( uplo, trans, n, k, &
  1295. &alpha, a, lda, stridea, &
  1296. &beta, c, ldc, stridec, batch_size )
  1297. character*1 uplo, trans
  1298. integer n, k, lda, ldc, batch_size
  1299. integer stridea, stridec
  1300. real alpha, beta
  1301. real a( lda, * ), c( ldc, * )
  1302. END
  1303. END INTERFACE
  1304. INTERFACE
  1305. subroutine ssyrk_batch ( uplo_array, trans_array, n_array, &
  1306. &k_array, alpha_array, a_array, lda_array, &
  1307. &beta_array, c_array, ldc_array, group_count, group_size )
  1308. use, intrinsic :: ISO_C_BINDING
  1309. character*1 uplo_array(*), trans_array(*)
  1310. integer n_array(*), k_array(*)
  1311. integer lda_array(*), ldc_array(*)
  1312. real alpha_array(*), beta_array(*)
  1313. integer(KIND=C_INTPTR_T) a_array(*), c_array(*)
  1314. integer group_count, group_size(*)
  1315. END
  1316. END INTERFACE
  1317. INTERFACE
  1318. subroutine ssyr2k( uplo, trans, n, k, alpha, a, lda, b, ldb, &
  1319. &beta, c, ldc )
  1320. character*1 uplo, trans
  1321. integer n, k, lda, ldb, ldc
  1322. real alpha, beta
  1323. real a( lda, * ), b( ldb, * ), c( ldc, * )
  1324. END
  1325. END INTERFACE
  1326. INTERFACE
  1327. subroutine strmm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1328. &b, ldb )
  1329. character*1 side, uplo, transa, diag
  1330. integer m, n, lda, ldb
  1331. real alpha
  1332. real a( lda, * ), b( ldb, * )
  1333. END
  1334. END INTERFACE
  1335. INTERFACE
  1336. subroutine strsm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1337. &b, ldb )
  1338. character*1 side, uplo, transa, diag
  1339. integer m, n, lda, ldb
  1340. real alpha
  1341. real a( lda, * ), b( ldb, * )
  1342. END
  1343. END INTERFACE
  1344. INTERFACE
  1345. subroutine strsm_batch_strided ( side, uplo, transa, diag, m, n, &
  1346. &alpha, a, lda, stridea, b, ldb, strideb, batch_size )
  1347. character*1 side, uplo, transa, diag
  1348. integer m, n, lda, ldb, batch_size
  1349. integer stridea, strideb
  1350. real alpha
  1351. real a( lda, * ), b( ldb, * )
  1352. END
  1353. END INTERFACE
  1354. INTERFACE
  1355. subroutine strsm_batch ( side_array, uplo_array, transa_array, &
  1356. &diag_array, m_array, n_array, alpha_array, a_array, lda_array, &
  1357. &b_array, ldb_array, group_count, group_size )
  1358. use, intrinsic :: ISO_C_BINDING
  1359. character*1 side_array(*), uplo_array(*)
  1360. character*1 transa_array(*), diag_array(*)
  1361. integer m_array(*), n_array(*)
  1362. integer lda_array(*), ldb_array(*)
  1363. real alpha_array(*)
  1364. integer(KIND=C_INTPTR_T) a_array(*), b_array(*)
  1365. integer group_count, group_size(*)
  1366. END
  1367. END INTERFACE
  1368. INTERFACE
  1369. subroutine sgemmt ( uplo, transa, transb, n, k, alpha, a, lda, &
  1370. &b, ldb, beta, c, ldc )
  1371. character*1 uplo, transa, transb
  1372. integer n, k, lda, ldb, ldc
  1373. real alpha, beta
  1374. real a( lda, * ), b( ldb, * ), c( ldc, * )
  1375. END
  1376. END INTERFACE
  1377. INTERFACE
  1378. function sgemm_pack_get_size ( identifier, m, n, k )
  1379. INTEGER sgemm_pack_get_size
  1380. character*1 identifier
  1381. integer m, n, k
  1382. END
  1383. END INTERFACE
  1384. INTERFACE
  1385. subroutine sgemm_compute ( transa, transb, m, n, k, a, lda, &
  1386. &b, ldb, beta, c, ldc )
  1387. character*1 transa, transb
  1388. integer m, n, k, lda, ldb, ldc
  1389. real beta
  1390. real a( * ), b( * ), c( ldc, * )
  1391. END
  1392. END INTERFACE
  1393. INTERFACE
  1394. subroutine sgemm_pack ( identifier, trans, m, n, k, alpha, src, &
  1395. &ld, dest )
  1396. character*1 identifier, trans
  1397. integer m, n, k, ld
  1398. real alpha
  1399. real src( ld, * ), dest( * )
  1400. END
  1401. END INTERFACE
  1402. INTERFACE
  1403. subroutine dgemm ( transa, transb, m, n, k, alpha, a, lda, &
  1404. &b, ldb, beta, c, ldc )
  1405. character*1 transa, transb
  1406. integer m, n, k, lda, ldb, ldc
  1407. double precision alpha, beta
  1408. double precision a( lda, * ), b( ldb, * ), c( ldc, * )
  1409. END
  1410. END INTERFACE
  1411. INTERFACE
  1412. subroutine dgemm_batch_strided ( transa, transb, m, n, k, &
  1413. &alpha, a, lda, stridea, b, ldb, strideb, beta, c, ldc, &
  1414. &stridec, batch_size )
  1415. character*1 transa, transb
  1416. integer m, n, k, lda, ldb, ldc, batch_size
  1417. integer stridea, strideb, stridec
  1418. double precision alpha, beta
  1419. double precision a( lda, * ), b( ldb, * ), c( ldc, * )
  1420. END
  1421. END INTERFACE
  1422. INTERFACE
  1423. subroutine dgemm_batch ( transa_array, transb_array, m_array, &
  1424. &n_array, k_array, alpha_array, a_array, lda_array, b_array, &
  1425. &ldb_array, beta_array, c_array, ldc_array, group_count, &
  1426. &group_size )
  1427. use, intrinsic :: ISO_C_BINDING
  1428. character*1 transa_array(*), transb_array(*)
  1429. integer m_array(*), n_array(*), k_array(*)
  1430. integer lda_array(*), ldb_array(*), ldc_array(*)
  1431. double precision alpha_array(*), beta_array(*)
  1432. integer(KIND=C_INTPTR_T) a_array(*), b_array(*), c_array(*)
  1433. integer group_count, group_size(*)
  1434. END
  1435. END INTERFACE
  1436. INTERFACE
  1437. subroutine dsymm ( side, uplo, m, n, alpha, a, lda, b, ldb, &
  1438. &beta, c, ldc )
  1439. character*1 side, uplo
  1440. integer m, n, lda, ldb, ldc
  1441. double precision alpha, beta
  1442. double precision a( lda, * ), b( ldb, * ), c( ldc, * )
  1443. END
  1444. END INTERFACE
  1445. INTERFACE
  1446. subroutine dsyrk ( uplo, trans, n, k, alpha, a, lda, &
  1447. &beta, c, ldc )
  1448. character*1 uplo, trans
  1449. integer n, k, lda, ldc
  1450. double precision alpha, beta
  1451. double precision a( lda, * ), c( ldc, * )
  1452. END
  1453. END INTERFACE
  1454. INTERFACE
  1455. subroutine dsyrk_batch_strided ( uplo, trans, n, k, &
  1456. &alpha, a, lda, stridea, beta, c, ldc, &
  1457. &stridec, batch_size )
  1458. character*1 uplo, trans
  1459. integer n, k, lda, ldc, batch_size
  1460. integer stridea, stridec
  1461. double precision alpha, beta
  1462. double precision a( lda, * ), c( ldc, * )
  1463. END
  1464. END INTERFACE
  1465. INTERFACE
  1466. subroutine dsyrk_batch ( uplo_array, trans_array, &
  1467. &n_array, k_array, alpha_array, a_array, lda_array, &
  1468. &beta_array, c_array, ldc_array, group_count, &
  1469. &group_size )
  1470. use, intrinsic :: ISO_C_BINDING
  1471. character*1 uplo_array(*), trans_array(*)
  1472. integer n_array(*), k_array(*)
  1473. integer lda_array(*), ldc_array(*)
  1474. double precision alpha_array(*), beta_array(*)
  1475. integer(KIND=C_INTPTR_T) a_array(*), c_array(*)
  1476. integer group_count, group_size(*)
  1477. END
  1478. END INTERFACE
  1479. INTERFACE
  1480. subroutine dsyr2k( uplo, trans, n, k, alpha, a, lda, b, ldb, &
  1481. &beta, c, ldc )
  1482. character*1 uplo, trans
  1483. integer n, k, lda, ldb, ldc
  1484. double precision alpha, beta
  1485. double precision a( lda, * ), b( ldb, * ), c( ldc, * )
  1486. END
  1487. END INTERFACE
  1488. INTERFACE
  1489. subroutine dtrmm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1490. &b, ldb )
  1491. character*1 side, uplo, transa, diag
  1492. integer m, n, lda, ldb
  1493. double precision alpha
  1494. double precision a( lda, * ), b( ldb, * )
  1495. END
  1496. END INTERFACE
  1497. INTERFACE
  1498. subroutine dtrsm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1499. &b, ldb )
  1500. character*1 side, uplo, transa, diag
  1501. integer m, n, lda, ldb
  1502. double precision alpha
  1503. double precision a( lda, * ), b( ldb, * )
  1504. END
  1505. END INTERFACE
  1506. INTERFACE
  1507. subroutine dtrsm_batch_strided ( side, uplo, transa, diag, m, n, &
  1508. &alpha, a, lda, stridea, b, ldb, strideb, batch_size )
  1509. character*1 side, uplo, transa, diag
  1510. integer m, n, lda, ldb, batch_size
  1511. integer stridea, strideb
  1512. double precision alpha
  1513. double precision a( lda, * ), b( ldb, * )
  1514. END
  1515. END INTERFACE
  1516. INTERFACE
  1517. subroutine dtrsm_batch ( side_array, uplo_array, transa_array, &
  1518. &diag_array, m_array, n_array, alpha_array, a_array, lda_array, &
  1519. &b_array, ldb_array, group_count, group_size )
  1520. use, intrinsic :: ISO_C_BINDING
  1521. character*1 side_array(*), uplo_array(*)
  1522. character*1 transa_array(*), diag_array(*)
  1523. integer m_array(*), n_array(*)
  1524. integer lda_array(*), ldb_array(*)
  1525. double precision alpha_array(*)
  1526. integer(KIND=C_INTPTR_T) a_array(*), b_array(*)
  1527. integer group_count, group_size(*)
  1528. END
  1529. END INTERFACE
  1530. INTERFACE
  1531. subroutine dgemmt ( uplo, transa, transb, n, k, alpha, a, lda, &
  1532. &b, ldb, beta, c, ldc )
  1533. character*1 uplo, transa, transb
  1534. integer n, k, lda, ldb, ldc
  1535. double precision alpha, beta
  1536. double precision a( lda, * ), b( ldb, * ), c( ldc, * )
  1537. END
  1538. END INTERFACE
  1539. INTERFACE
  1540. function dgemm_pack_get_size ( identifier, m, n, k )
  1541. INTEGER dgemm_pack_get_size
  1542. character*1 identifier
  1543. integer m, n, k
  1544. END
  1545. END INTERFACE
  1546. INTERFACE
  1547. subroutine dgemm_compute ( transa, transb, m, n, k, a, lda, &
  1548. &b, ldb, beta, c, ldc )
  1549. character*1 transa, transb
  1550. integer m, n, k, lda, ldb, ldc
  1551. double precision beta
  1552. double precision a( * ), b( * ), c( ldc, * )
  1553. END
  1554. END INTERFACE
  1555. INTERFACE
  1556. subroutine dgemm_pack ( identifier, trans, m, n, k, alpha, src, &
  1557. &ld, dest )
  1558. character*1 identifier, trans
  1559. integer m, n, k, ld
  1560. double precision alpha
  1561. double precision src( ld, * ), dest( * )
  1562. END
  1563. END INTERFACE
  1564. INTERFACE
  1565. subroutine cgemm ( transa, transb, m, n, k, alpha, a, lda, &
  1566. &b, ldb, beta, c, ldc )
  1567. character*1 transa, transb
  1568. integer m, n, k, lda, ldb, ldc
  1569. complex alpha, beta
  1570. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1571. END
  1572. END INTERFACE
  1573. INTERFACE
  1574. subroutine cgemm_batch_strided ( transa, transb, m, n, k, &
  1575. &alpha, a, lda, stridea, b, ldb, strideb, beta, c, ldc, &
  1576. &stridec, batch_size )
  1577. character*1 transa, transb
  1578. integer m, n, k, lda, ldb, ldc, batch_size
  1579. integer stridea, strideb, stridec
  1580. complex alpha, beta
  1581. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1582. END
  1583. END INTERFACE
  1584. INTERFACE
  1585. subroutine cgemm_batch ( transa_array, transb_array, m_array, &
  1586. &n_array, k_array, alpha_array, a_array, lda_array, b_array, &
  1587. &ldb_array, beta_array, c_array, ldc_array, group_count, &
  1588. &group_size )
  1589. use, intrinsic :: ISO_C_BINDING
  1590. character*1 transa_array(*), transb_array(*)
  1591. integer m_array(*), n_array(*), k_array(*)
  1592. integer lda_array(*), ldb_array(*), ldc_array(*)
  1593. complex alpha_array(*), beta_array(*)
  1594. integer(KIND=C_INTPTR_T) a_array(*), b_array(*), c_array(*)
  1595. integer group_count, group_size(*)
  1596. END
  1597. END INTERFACE
  1598. INTERFACE
  1599. subroutine cgemm3m_batch ( transa_array, transb_array, m_array, &
  1600. &n_array, k_array, alpha_array, a_array, lda_array, b_array, &
  1601. &ldb_array, beta_array, c_array, ldc_array, group_count, &
  1602. &group_size )
  1603. use, intrinsic :: ISO_C_BINDING
  1604. character*1 transa_array(*), transb_array(*)
  1605. integer m_array(*), n_array(*), k_array(*)
  1606. integer lda_array(*), ldb_array(*), ldc_array(*)
  1607. complex alpha_array(*), beta_array(*)
  1608. integer(KIND=C_INTPTR_T) a_array(*), b_array(*), c_array(*)
  1609. integer group_count, group_size(*)
  1610. END
  1611. END INTERFACE
  1612. INTERFACE
  1613. subroutine scgemm ( transa, transb, m, n, k, alpha, a, lda, &
  1614. &b, ldb, beta, c, ldc )
  1615. character*1 transa, transb
  1616. integer m, n, k, lda, ldb, ldc
  1617. complex alpha, beta
  1618. real a( lda, * )
  1619. complex b( ldb, * ), c( ldc, * )
  1620. END
  1621. END INTERFACE
  1622. INTERFACE
  1623. subroutine cgemm3m ( transa, transb, m, n, k, alpha, a, lda, &
  1624. &b, ldb, beta, c, ldc )
  1625. character*1 transa, transb
  1626. integer m, n, k, lda, ldb, ldc
  1627. complex alpha, beta
  1628. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1629. END
  1630. END INTERFACE
  1631. INTERFACE
  1632. subroutine csymm ( side, uplo, m, n, alpha, a, lda, b, ldb, &
  1633. &beta, c, ldc )
  1634. character*1 side, uplo
  1635. integer m, n, lda, ldb, ldc
  1636. complex alpha, beta
  1637. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1638. END
  1639. END INTERFACE
  1640. INTERFACE
  1641. subroutine chemm ( side, uplo, m, n, alpha, a, lda, b, ldb, &
  1642. &beta, c, ldc )
  1643. character*1 side, uplo
  1644. integer m, n, lda, ldb, ldc
  1645. complex alpha, beta
  1646. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1647. END
  1648. END INTERFACE
  1649. INTERFACE
  1650. subroutine csyrk ( uplo, trans, n, k, alpha, a, lda, &
  1651. &beta, c, ldc )
  1652. character*1 uplo, trans
  1653. integer n, k, lda, ldc
  1654. complex alpha, beta
  1655. complex a( lda, * ), c( ldc, * )
  1656. END
  1657. END INTERFACE
  1658. INTERFACE
  1659. subroutine csyrk_batch_strided ( uplo, trans, n, k, &
  1660. &alpha, a, lda, stridea, beta, c, ldc, &
  1661. &stridec, batch_size )
  1662. character*1 uplo, trans
  1663. integer n, k, lda, ldc, batch_size
  1664. integer stridea, stridec
  1665. complex alpha, beta
  1666. complex a( lda, * ), c( ldc, * )
  1667. END
  1668. END INTERFACE
  1669. INTERFACE
  1670. subroutine csyrk_batch ( uplo_array, trans_array, &
  1671. &n_array, k_array, alpha_array, a_array, lda_array, &
  1672. &beta_array, c_array, ldc_array, group_count, &
  1673. &group_size )
  1674. use, intrinsic :: ISO_C_BINDING
  1675. character*1 uplo_array(*), trans_array(*)
  1676. integer n_array(*), k_array(*)
  1677. integer lda_array(*), ldc_array(*)
  1678. complex alpha_array(*), beta_array(*)
  1679. integer(KIND=C_INTPTR_T) a_array(*), c_array(*)
  1680. integer group_count, group_size(*)
  1681. END
  1682. END INTERFACE
  1683. INTERFACE
  1684. subroutine cherk ( uplo, trans, n, k, alpha, a, lda, &
  1685. &beta, c, ldc )
  1686. character*1 uplo, trans
  1687. integer n, k, lda, ldc
  1688. real alpha, beta
  1689. complex a( lda, * ), c( ldc, * )
  1690. END
  1691. END INTERFACE
  1692. INTERFACE
  1693. subroutine csyr2k( uplo, trans, n, k, alpha, a, lda, b, ldb, &
  1694. &beta, c, ldc )
  1695. character*1 uplo, trans
  1696. integer n, k, lda, ldb, ldc
  1697. complex alpha, beta
  1698. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1699. END
  1700. END INTERFACE
  1701. INTERFACE
  1702. subroutine cher2k( uplo, trans, n, k, alpha, a, lda, b, ldb, &
  1703. &beta, c, ldc )
  1704. character*1 uplo, trans
  1705. integer n, k, lda, ldb, ldc
  1706. real beta
  1707. complex alpha
  1708. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1709. END
  1710. END INTERFACE
  1711. INTERFACE
  1712. subroutine ctrmm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1713. &b, ldb )
  1714. character*1 side, uplo, transa, diag
  1715. integer m, n, lda, ldb
  1716. complex alpha
  1717. complex a( lda, * ), b( ldb, * )
  1718. END
  1719. END INTERFACE
  1720. INTERFACE
  1721. subroutine ctrsm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1722. &b, ldb )
  1723. character*1 side, uplo, transa, diag
  1724. integer m, n, lda, ldb
  1725. complex alpha
  1726. complex a( lda, * ), b( ldb, * )
  1727. END
  1728. END INTERFACE
  1729. INTERFACE
  1730. subroutine ctrsm_batch_strided ( side, uplo, transa, diag, m, n, &
  1731. &alpha, a, lda, stridea, b, ldb, strideb, batch_size )
  1732. character*1 side, uplo, transa, diag
  1733. integer m, n, lda, ldb, batch_size
  1734. integer stridea, strideb
  1735. complex alpha
  1736. complex a( lda, * ), b( ldb, * )
  1737. END
  1738. END INTERFACE
  1739. INTERFACE
  1740. subroutine ctrsm_batch ( side_array, uplo_array, transa_array, &
  1741. &diag_array, m_array, n_array, alpha_array, a_array, lda_array, &
  1742. &b_array, ldb_array, group_count, group_size )
  1743. use, intrinsic :: ISO_C_BINDING
  1744. character*1 side_array(*), uplo_array(*)
  1745. character*1 transa_array(*), diag_array(*)
  1746. integer m_array(*), n_array(*)
  1747. integer lda_array(*), ldb_array(*)
  1748. complex alpha_array(*)
  1749. integer(KIND=C_INTPTR_T) a_array(*), b_array(*)
  1750. integer group_count, group_size(*)
  1751. END
  1752. END INTERFACE
  1753. INTERFACE
  1754. subroutine cgemmt ( uplo, transa, transb, n, k, alpha, a, lda, &
  1755. &b, ldb, beta, c, ldc )
  1756. character*1 uplo, transa, transb
  1757. integer n, k, lda, ldb, ldc
  1758. complex alpha, beta
  1759. complex a( lda, * ), b( ldb, * ), c( ldc, * )
  1760. END
  1761. END INTERFACE
  1762. INTERFACE
  1763. subroutine zgemm ( transa, transb, m, n, k, alpha, a, lda, &
  1764. &b, ldb, beta, c, ldc )
  1765. character*1 transa, transb
  1766. integer m, n, k, lda, ldb, ldc
  1767. complex*16 alpha, beta
  1768. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1769. END
  1770. END INTERFACE
  1771. INTERFACE
  1772. subroutine zgemm_batch_strided ( transa, transb, m, n, k, &
  1773. &alpha, a, lda, stridea, b, ldb, strideb, beta, c, ldc, &
  1774. &stridec, batch_size )
  1775. character*1 transa, transb
  1776. integer m, n, k, lda, ldb, ldc, batch_size
  1777. integer stridea, strideb, stridec
  1778. complex*16 alpha, beta
  1779. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1780. END
  1781. END INTERFACE
  1782. INTERFACE
  1783. subroutine zgemm_batch ( transa_array, transb_array, m_array, &
  1784. &n_array, k_array, alpha_array, a_array, lda_array, b_array, &
  1785. &ldb_array, beta_array, c_array, ldc_array, group_count, &
  1786. &group_size )
  1787. use, intrinsic :: ISO_C_BINDING
  1788. character*1 transa_array(*), transb_array(*)
  1789. integer m_array(*), n_array(*), k_array(*)
  1790. integer lda_array(*), ldb_array(*), ldc_array(*)
  1791. complex*16 alpha_array(*), beta_array(*)
  1792. integer(KIND=C_INTPTR_T) a_array(*), b_array(*), c_array(*)
  1793. integer group_count, group_size(*)
  1794. END
  1795. END INTERFACE
  1796. INTERFACE
  1797. subroutine zgemm3m_batch ( transa_array, transb_array, m_array, &
  1798. &n_array, k_array, alpha_array, a_array, lda_array, b_array, &
  1799. &ldb_array, beta_array, c_array, ldc_array, group_count, &
  1800. &group_size )
  1801. use, intrinsic :: ISO_C_BINDING
  1802. character*1 transa_array(*), transb_array(*)
  1803. integer m_array(*), n_array(*), k_array(*)
  1804. integer lda_array(*), ldb_array(*), ldc_array(*)
  1805. complex*16 alpha_array(*), beta_array(*)
  1806. integer(KIND=C_INTPTR_T) a_array(*), b_array(*), c_array(*)
  1807. integer group_count, group_size(*)
  1808. END
  1809. END INTERFACE
  1810. INTERFACE
  1811. subroutine dzgemm ( transa, transb, m, n, k, alpha, a, lda, &
  1812. &b, ldb, beta, c, ldc )
  1813. character*1 transa, transb
  1814. integer m, n, k, lda, ldb, ldc
  1815. complex*16 alpha, beta
  1816. double precision a( lda, * )
  1817. complex*16 b( ldb, * ), c( ldc, * )
  1818. END
  1819. END INTERFACE
  1820. INTERFACE
  1821. subroutine zgemm3m ( transa, transb, m, n, k, alpha, a, lda, &
  1822. &b, ldb, beta, c, ldc )
  1823. character*1 transa, transb
  1824. integer m, n, k, lda, ldb, ldc
  1825. complex*16 alpha, beta
  1826. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1827. END
  1828. END INTERFACE
  1829. INTERFACE
  1830. subroutine zsymm ( side, uplo, m, n, alpha, a, lda, b, ldb, &
  1831. &beta, c, ldc )
  1832. character*1 side, uplo
  1833. integer m, n, lda, ldb, ldc
  1834. complex*16 alpha, beta
  1835. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1836. END
  1837. END INTERFACE
  1838. INTERFACE
  1839. subroutine zhemm ( side, uplo, m, n, alpha, a, lda, b, ldb, &
  1840. &beta, c, ldc )
  1841. character*1 side, uplo
  1842. integer m, n, lda, ldb, ldc
  1843. complex*16 alpha, beta
  1844. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1845. END
  1846. END INTERFACE
  1847. INTERFACE
  1848. subroutine zsyrk ( uplo, trans, n, k, alpha, a, lda, &
  1849. &beta, c, ldc )
  1850. character*1 uplo, trans
  1851. integer n, k, lda, ldc
  1852. complex*16 alpha, beta
  1853. complex*16 a( lda, * ), c( ldc, * )
  1854. END
  1855. END INTERFACE
  1856. INTERFACE
  1857. subroutine zsyrk_batch_strided ( uplo, trans, n, k, &
  1858. &alpha, a, lda, stridea, beta, c, ldc, &
  1859. &stridec, batch_size )
  1860. character*1 uplo, trans
  1861. integer n, k, lda, ldc, batch_size
  1862. integer stridea, stridec
  1863. complex*16 alpha, beta
  1864. complex*16 a( lda, * ), c( ldc, * )
  1865. END
  1866. END INTERFACE
  1867. INTERFACE
  1868. subroutine zsyrk_batch ( uplo_array, trans_array, &
  1869. &n_array, k_array, alpha_array, a_array, lda_array, &
  1870. &beta_array, c_array, ldc_array, group_count, &
  1871. &group_size )
  1872. use, intrinsic :: ISO_C_BINDING
  1873. character*1 uplo_array(*), trans_array(*)
  1874. integer n_array(*), k_array(*)
  1875. integer lda_array(*), ldc_array(*)
  1876. complex*16 alpha_array(*), beta_array(*)
  1877. integer(KIND=C_INTPTR_T) a_array(*), c_array(*)
  1878. integer group_count, group_size(*)
  1879. END
  1880. END INTERFACE
  1881. INTERFACE
  1882. subroutine zherk( uplo, trans, n, k, alpha, a, lda, beta, &
  1883. &c, ldc )
  1884. character trans, uplo
  1885. integer k, lda, ldc, n
  1886. double precision alpha, beta
  1887. complex*16 a( lda, * ), c( ldc, * )
  1888. END
  1889. END INTERFACE
  1890. INTERFACE
  1891. subroutine zsyr2k( uplo, trans, n, k, alpha, a, lda, b, ldb, &
  1892. &beta, c, ldc )
  1893. character*1 uplo, trans
  1894. integer n, k, lda, ldb, ldc
  1895. complex*16 alpha, beta
  1896. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1897. END
  1898. END INTERFACE
  1899. INTERFACE
  1900. subroutine zher2k( uplo, trans, n, k, alpha, a, lda, b, ldb, &
  1901. &beta, c, ldc )
  1902. character trans, uplo
  1903. integer k, lda, ldb, ldc, n
  1904. double precision beta
  1905. complex*16 alpha
  1906. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1907. END
  1908. END INTERFACE
  1909. INTERFACE
  1910. subroutine ztrmm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1911. &b, ldb )
  1912. character*1 side, uplo, transa, diag
  1913. integer m, n, lda, ldb
  1914. complex*16 alpha
  1915. complex*16 a( lda, * ), b( ldb, * )
  1916. END
  1917. END INTERFACE
  1918. INTERFACE
  1919. subroutine ztrsm ( side, uplo, transa, diag, m, n, alpha, a, lda, &
  1920. &b, ldb )
  1921. character*1 side, uplo, transa, diag
  1922. integer m, n, lda, ldb
  1923. complex*16 alpha
  1924. complex*16 a( lda, * ), b( ldb, * )
  1925. END
  1926. END INTERFACE
  1927. INTERFACE
  1928. subroutine ztrsm_batch_strided ( side, uplo, transa, diag, m, n, &
  1929. &alpha, a, lda, stridea, b, ldb, strideb, batch_size )
  1930. character*1 side, uplo, transa, diag
  1931. integer m, n, lda, ldb, batch_size
  1932. integer stridea, strideb
  1933. complex*16 alpha
  1934. complex*16 a( lda, * ), b( ldb, * )
  1935. END
  1936. END INTERFACE
  1937. INTERFACE
  1938. subroutine ztrsm_batch ( side_array, uplo_array, transa_array, &
  1939. &diag_array, m_array, n_array, alpha_array, a_array, lda_array, &
  1940. &b_array, ldb_array, group_count, group_size )
  1941. use, intrinsic :: ISO_C_BINDING
  1942. character*1 side_array(*), uplo_array(*)
  1943. character*1 transa_array(*), diag_array(*)
  1944. integer m_array(*), n_array(*)
  1945. integer lda_array(*), ldb_array(*)
  1946. complex*16 alpha_array(*)
  1947. integer(KIND=C_INTPTR_T) a_array(*), b_array(*)
  1948. integer group_count, group_size(*)
  1949. END
  1950. END INTERFACE
  1951. INTERFACE
  1952. subroutine zgemmt ( uplo, transa, transb, n, k, alpha, a, lda, &
  1953. &b, ldb, beta, c, ldc )
  1954. character*1 uplo, transa, transb
  1955. integer n, k, lda, ldb, ldc
  1956. complex*16 alpha, beta
  1957. complex*16 a( lda, * ), b( ldb, * ), c( ldc, * )
  1958. END
  1959. END INTERFACE
  1960. INTERFACE
  1961. subroutine gemm_s8u8s32 ( transa, transb, offsetc, m, n, k, &
  1962. &alpha, a, lda, ao, b, ldb, bo, beta, c, ldc, co )
  1963. character*1 transa, transb, offsetc
  1964. integer m, n, k
  1965. real alpha
  1966. integer lda, ldb, ldc
  1967. integer*1 a(lda,*)
  1968. integer*1 ao
  1969. integer*1 b(ldb,*)
  1970. integer*1 bo
  1971. real beta
  1972. integer*4 c(ldc,*)
  1973. integer*4 co(*)
  1974. END
  1975. END INTERFACE
  1976. INTERFACE
  1977. subroutine gemm_s16s16s32 ( transa, transb, offsetc, m, n, k, &
  1978. &alpha, a, lda, ao, b, ldb, bo, beta, c, ldc, co )
  1979. character*1 transa, transb, offsetc
  1980. integer m, n, k
  1981. real alpha
  1982. integer lda, ldb, ldc
  1983. integer*2 a(lda,*)
  1984. integer*2 ao
  1985. integer*2 b(ldb,*)
  1986. integer*2 bo
  1987. real beta
  1988. integer*4 c(ldc,*)
  1989. integer*4 co(*)
  1990. END
  1991. END INTERFACE
  1992. INTERFACE
  1993. function gemm_s8u8s32_pack_get_size ( identifier, m, n, k )
  1994. INTEGER gemm_s8u8s32_pack_get_size
  1995. character*1 identifier
  1996. integer m, n, k
  1997. END
  1998. END INTERFACE
  1999. INTERFACE
  2000. subroutine gemm_s8u8s32_compute ( transa, transb, offsetc, &
  2001. &m, n, k, alpha, a, lda, ao, b, ldb, bo, beta, c, ldc, co )
  2002. character*1 transa, transb, offsetc
  2003. integer m, n, k
  2004. real alpha
  2005. integer lda, ldb, ldc
  2006. integer*1 a(lda,*)
  2007. integer*1 ao
  2008. integer*1 b(ldb,*)
  2009. integer*1 bo
  2010. real beta
  2011. integer*4 c(ldc,*)
  2012. integer*4 co(*)
  2013. END
  2014. END INTERFACE
  2015. INTERFACE
  2016. subroutine gemm_s8u8s32_pack ( identifier, trans, m, n, k, &
  2017. &src, ld, dest )
  2018. character*1 identifier, trans
  2019. integer m, n, k, ld
  2020. integer*1 src( ld, * ), dest( * )
  2021. END
  2022. END INTERFACE
  2023. INTERFACE
  2024. function gemm_s16s16s32_pack_get_size ( identifier, m, n, k )
  2025. INTEGER gemm_s16s16s32_pack_get_size
  2026. character*1 identifier
  2027. integer m, n, k
  2028. END
  2029. END INTERFACE
  2030. INTERFACE
  2031. subroutine gemm_s16s16s32_compute ( transa, transb, offsetc, &
  2032. &m, n, k, alpha, a, lda, ao, b, ldb, bo, beta, c, ldc, co )
  2033. character*1 transa, transb, offsetc
  2034. integer m, n, k
  2035. real alpha
  2036. integer lda, ldb, ldc
  2037. integer*2 a(lda,*)
  2038. integer*2 ao
  2039. integer*2 b(ldb,*)
  2040. integer*2 bo
  2041. real beta
  2042. integer*4 c(ldc,*)
  2043. integer*4 co(*)
  2044. END
  2045. END INTERFACE
  2046. INTERFACE
  2047. subroutine gemm_s16s16s32_pack ( identifier, trans, m, n, k, &
  2048. &src, ld, dest )
  2049. character*1 identifier, trans
  2050. integer m, n, k, ld
  2051. integer*2 src( ld, * ), dest( * )
  2052. END
  2053. END INTERFACE
  2054. INTERFACE
  2055. subroutine sgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2056. &beta, y, incy, group_count, group_size )
  2057. use, intrinsic :: ISO_C_BINDING
  2058. real alpha(*), beta(*)
  2059. integer incx(*), incy(*), lda(*), m(*), n(*)
  2060. integer group_count, group_size(*)
  2061. character*1 trans(*)
  2062. integer(KIND=C_INTPTR_T) a( * ), x( * ), y( * )
  2063. END
  2064. END INTERFACE
  2065. INTERFACE
  2066. subroutine sgemv_batch_strided ( trans, m, n, alpha, &
  2067. &a, lda, stridea, x, incx, stridex, beta, y, incy, stridey, &
  2068. &batch_size )
  2069. real alpha, beta
  2070. integer incx, incy, lda, m, n
  2071. integer stridea, stridex, stridey, batch_size
  2072. character*1 trans
  2073. real a( lda, * ), x( * ), y( * )
  2074. END
  2075. END INTERFACE
  2076. INTERFACE
  2077. subroutine dgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2078. &beta, y, incy, group_count, group_size )
  2079. use, intrinsic :: ISO_C_BINDING
  2080. double precision alpha(*), beta(*)
  2081. integer incx(*), incy(*), lda(*), m(*), n(*)
  2082. integer group_count, group_size(*)
  2083. character*1 trans(*)
  2084. integer(KIND=C_INTPTR_T) a( * ), x( * ), y( * )
  2085. END
  2086. END INTERFACE
  2087. INTERFACE
  2088. subroutine dgemv_batch_strided ( trans, m, n, alpha, &
  2089. &a, lda, stridea, x, incx, stridex, beta, y, incy, stridey, &
  2090. &batch_size )
  2091. double precision alpha, beta
  2092. integer incx, incy, lda, m, n
  2093. integer stridea, stridex, stridey, batch_size
  2094. character*1 trans
  2095. double precision a( lda, * ), x( * ), y( * )
  2096. END
  2097. END INTERFACE
  2098. INTERFACE
  2099. subroutine cgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2100. &beta, y, incy, group_count, group_size )
  2101. use, intrinsic :: ISO_C_BINDING
  2102. complex alpha(*), beta(*)
  2103. integer incx(*), incy(*), lda(*), m(*), n(*)
  2104. integer group_count, group_size(*)
  2105. character*1 trans(*)
  2106. integer(KIND=C_INTPTR_T) a( * ), x( * ), y( * )
  2107. END
  2108. END INTERFACE
  2109. INTERFACE
  2110. subroutine cgemv_batch_strided ( trans, m, n, alpha, &
  2111. &a, lda, stridea, x, incx, stridex, beta, y, incy, stridey, &
  2112. &batch_size )
  2113. complex alpha, beta
  2114. integer incx, incy, lda, m, n
  2115. integer stridea, stridex, stridey, batch_size
  2116. character*1 trans
  2117. complex a( lda, * ), x( * ), y( * )
  2118. END
  2119. END INTERFACE
  2120. INTERFACE
  2121. subroutine zgemv_batch ( trans, m, n, alpha, a, lda, x, incx, &
  2122. &beta, y, incy, group_count, group_size )
  2123. use, intrinsic :: ISO_C_BINDING
  2124. complex*16 alpha(*), beta(*)
  2125. integer incx(*), incy(*), lda(*), m(*), n(*)
  2126. integer group_count, group_size(*)
  2127. character*1 trans(*)
  2128. integer(KIND=C_INTPTR_T) a( * ), x( * ), y( * )
  2129. END
  2130. END INTERFACE
  2131. INTERFACE
  2132. subroutine zgemv_batch_strided ( trans, m, n, alpha, &
  2133. &a, lda, stridea, x, incx, stridex, beta, y, incy, stridey, &
  2134. &batch_size )
  2135. complex*16 alpha, beta
  2136. integer incx, incy, lda, m, n
  2137. integer stridea, stridex, stridey, batch_size
  2138. character*1 trans
  2139. complex*16 a( lda, * ), x( * ), y( * )
  2140. END
  2141. END INTERFACE
  2142. INTERFACE
  2143. subroutine sdgmm_batch ( side, m, n, a, lda, x, incx, &
  2144. &c, ldc, group_count, group_size )
  2145. use, intrinsic :: ISO_C_BINDING
  2146. integer incx(*), ldc(*), lda(*), m(*), n(*)
  2147. integer group_count, group_size(*)
  2148. character*1 side(*)
  2149. integer(KIND=C_INTPTR_T) a( * ), x( * ), c( * )
  2150. END
  2151. END INTERFACE
  2152. INTERFACE
  2153. subroutine sdgmm_batch_strided ( side, m, n, &
  2154. &a, lda, stridea, x, incx, stridex, c, ldc, stridec, &
  2155. &batch_size )
  2156. integer incx, ldc, lda, m, n
  2157. integer stridea, stridex, stridec, batch_size
  2158. character*1 side
  2159. real a( lda, * ), x( * ), c( ldc, * )
  2160. END
  2161. END INTERFACE
  2162. INTERFACE
  2163. subroutine ddgmm_batch ( side, m, n, a, lda, x, incx, &
  2164. &c, ldc, group_count, group_size )
  2165. use, intrinsic :: ISO_C_BINDING
  2166. integer incx(*), ldc(*), lda(*), m(*), n(*)
  2167. integer group_count, group_size(*)
  2168. character*1 side(*)
  2169. integer(KIND=C_INTPTR_T) a( * ), x( * ), c( * )
  2170. END
  2171. END INTERFACE
  2172. INTERFACE
  2173. subroutine ddgmm_batch_strided ( side, m, n, &
  2174. &a, lda, stridea, x, incx, stridex, c, ldc, stridec, &
  2175. &batch_size )
  2176. integer incx, ldc, lda, m, n
  2177. integer stridea, stridex, stridec, batch_size
  2178. character*1 side
  2179. double precision a( lda, * ), x( * ), c( ldc, * )
  2180. END
  2181. END INTERFACE
  2182. INTERFACE
  2183. subroutine cdgmm_batch ( side, m, n, a, lda, x, incx, &
  2184. &c, ldc, group_count, group_size )
  2185. use, intrinsic :: ISO_C_BINDING
  2186. integer incx(*), ldc(*), lda(*), m(*), n(*)
  2187. integer group_count, group_size(*)
  2188. character*1 side(*)
  2189. integer(KIND=C_INTPTR_T) a( * ), x( * ), c( * )
  2190. END
  2191. END INTERFACE
  2192. INTERFACE
  2193. subroutine cdgmm_batch_strided ( side, m, n, &
  2194. &a, lda, stridea, x, incx, stridex, c, ldc, stridec, &
  2195. &batch_size )
  2196. integer incx, ldc, lda, m, n
  2197. integer stridea, stridex, stridec, batch_size
  2198. character*1 side
  2199. complex a( lda, * ), x( * ), c( ldc, * )
  2200. END
  2201. END INTERFACE
  2202. INTERFACE
  2203. subroutine zdgmm_batch ( side, m, n, a, lda, x, incx, &
  2204. &c, ldc, group_count, group_size )
  2205. use, intrinsic :: ISO_C_BINDING
  2206. integer incx(*), ldc(*), lda(*), m(*), n(*)
  2207. integer group_count, group_size(*)
  2208. character*1 side(*)
  2209. integer(KIND=C_INTPTR_T) a( * ), x( * ), c( * )
  2210. END
  2211. END INTERFACE
  2212. INTERFACE
  2213. subroutine zdgmm_batch_strided ( side, m, n, &
  2214. &a, lda, stridea, x, incx, stridex, c, ldc, stridec, &
  2215. &batch_size )
  2216. integer incx, ldc, lda, m, n
  2217. integer stridea, stridex, stridec, batch_size
  2218. character*1 side
  2219. complex*16 a( lda, * ), x( * ), c( ldc, * )
  2220. END
  2221. END INTERFACE