mkl_blas.h 121 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540
  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. /*
  15. ! Content:
  16. ! Intel(R) oneAPI Math Kernel Library (oneMKL) interface for BLAS routines
  17. !******************************************************************************/
  18. #ifndef _MKL_BLAS_H_
  19. #define _MKL_BLAS_H_
  20. #include <stddef.h>
  21. #include "mkl_types.h"
  22. #ifdef __cplusplus
  23. #if __cplusplus > 199711L
  24. #define NOTHROW noexcept
  25. #else
  26. #define NOTHROW throw()
  27. #endif
  28. #else
  29. #define NOTHROW
  30. #endif
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif /* __cplusplus */
  34. /* Upper case declaration */
  35. void XERBLA(const char *srname, const int *info, const int lsrname);
  36. int LSAME(const char *ca, const char *cb, const MKL_INT lca, const MKL_INT lcb);
  37. /* BLAS Level1 */
  38. float SCABS1(const MKL_Complex8 *c);
  39. float SASUM(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  40. void SAXPY(const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx, float *y, const MKL_INT *incy) NOTHROW;
  41. void SAXPBY(const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx, const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  42. void SAXPYI(const MKL_INT *nz, const float *a, const float *x, const MKL_INT *indx,float *y);
  43. float SCASUM(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  44. float SCNRM2(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  45. void SCOPY(const MKL_INT *n, const float *x, const MKL_INT *incx, float *y, const MKL_INT *incy) NOTHROW;
  46. float SDOT(const MKL_INT *n, const float *x, const MKL_INT *incx, const float *y, const MKL_INT *incy) NOTHROW;
  47. float SDSDOT(const MKL_INT *n, const float *sb, const float *x, const MKL_INT *incx, const float *y, const MKL_INT *incy) NOTHROW;
  48. float SDOTI(const MKL_INT *nz, const float *x, const MKL_INT *indx, const float *y);
  49. void SGTHR(const MKL_INT *nz, const float *y, float *x, const MKL_INT *indx);
  50. void SGTHRZ(const MKL_INT *nz, float *y, float *x, const MKL_INT *indx);
  51. float SNRM2(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  52. void SROT(const MKL_INT *n, float *x, const MKL_INT *incx, float *y, const MKL_INT *incy, const float *c, const float *s) NOTHROW;
  53. void SROTG(float *a,float *b,float *c,float *s) NOTHROW;
  54. void SROTI(const MKL_INT *nz, float *x, const MKL_INT *indx, float *y, const float *c, const float *s);
  55. void SROTM(const MKL_INT *n, float *x, const MKL_INT *incx, float *y, const MKL_INT *incy, const float *param) NOTHROW;
  56. void SROTMG(float *d1, float *d2, float *x1, const float *y1, float *param) NOTHROW;
  57. void SSCAL(const MKL_INT *n, const float *a, float *x, const MKL_INT *incx) NOTHROW;
  58. void SSCTR(const MKL_INT *nz, const float *x, const MKL_INT *indx, float *y);
  59. void SSWAP(const MKL_INT *n, float *x, const MKL_INT *incx, float *y, const MKL_INT *incy) NOTHROW;
  60. MKL_INT ISAMAX(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  61. MKL_INT ISAMIN(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  62. void CAXPY(const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  63. void CAXPBY(const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy);
  64. void CAXPYI(const MKL_INT *nz, const MKL_Complex8 *a, const MKL_Complex8 *x, const MKL_INT *indx, MKL_Complex8 *y);
  65. void CCOPY(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  66. void CDOTC(MKL_Complex8 *pres, const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  67. void CDOTCI(MKL_Complex8 *pres, const MKL_INT *nz, const MKL_Complex8 *x, const MKL_INT *indx, const MKL_Complex8 *y);
  68. void CDOTU(MKL_Complex8 *pres, const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  69. void CDOTUI(MKL_Complex8 *pres, const MKL_INT *nz, const MKL_Complex8 *x, const MKL_INT *indx, const MKL_Complex8 *y);
  70. void CGTHR(const MKL_INT *nz, const MKL_Complex8 *y, MKL_Complex8 *x, const MKL_INT *indx);
  71. void CGTHRZ(const MKL_INT *nz, MKL_Complex8 *y, MKL_Complex8 *x, const MKL_INT *indx);
  72. void CROTG(MKL_Complex8 *a, const MKL_Complex8 *b, float *c, MKL_Complex8 *s) NOTHROW;
  73. void CSCAL(const MKL_INT *n, const MKL_Complex8 *a, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  74. void CSCTR(const MKL_INT *nz, const MKL_Complex8 *x, const MKL_INT *indx, MKL_Complex8 *y);
  75. void CSROT(const MKL_INT *n, MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy, const float *c, const float *s) NOTHROW;
  76. void CROT(const MKL_INT *n, MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy, const float *c, const MKL_Complex8 *s) NOTHROW;
  77. void CSSCAL(const MKL_INT *n, const float *a, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  78. void CSWAP(const MKL_INT *n, MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  79. MKL_INT ICAMAX(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  80. MKL_INT ICAMIN(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  81. double DCABS1(const MKL_Complex16 *z);
  82. double DASUM(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  83. void DAXPY(const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx, double *y, const MKL_INT *incy) NOTHROW;
  84. void DAXPBY(const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx, const double *beta, double *y, const MKL_INT *incy);
  85. void DAXPYI(const MKL_INT *nz, const double *a, const double *x, const MKL_INT *indx, double *y);
  86. void DCOPY(const MKL_INT *n, const double *x, const MKL_INT *incx, double *y, const MKL_INT *incy) NOTHROW;
  87. double DDOT(const MKL_INT *n, const double *x, const MKL_INT *incx, const double *y, const MKL_INT *incy) NOTHROW;
  88. double DSDOT(const MKL_INT *n, const float *x, const MKL_INT *incx, const float *y, const MKL_INT *incy) NOTHROW;
  89. double DDOTI(const MKL_INT *nz, const double *x, const MKL_INT *indx, const double *y);
  90. void DGTHR(const MKL_INT *nz, const double *y, double *x, const MKL_INT *indx);
  91. void DGTHRZ(const MKL_INT *nz, double *y, double *x, const MKL_INT *indx);
  92. double DNRM2(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  93. void DROT(const MKL_INT *n, double *x, const MKL_INT *incx, double *y, const MKL_INT *incy, const double *c, const double *s) NOTHROW;
  94. void DROTG(double *a,double *b,double *c,double *s) NOTHROW;
  95. void DROTI(const MKL_INT *nz, double *x, const MKL_INT *indx, double *y, const double *c, const double *s);
  96. void DROTM(const MKL_INT *n, double *x, const MKL_INT *incx, double *y, const MKL_INT *incy, const double *param) NOTHROW;
  97. void DROTMG(double *d1, double *d2, double *x1, const double *y1, double *param) NOTHROW;
  98. void DSCAL(const MKL_INT *n, const double *a, double *x, const MKL_INT *incx) NOTHROW;
  99. void DSCTR(const MKL_INT *nz, const double *x, const MKL_INT *indx, double *y);
  100. void DSWAP(const MKL_INT *n, double *x, const MKL_INT *incx, double *y, const MKL_INT *incy) NOTHROW;
  101. double DZASUM(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  102. double DZNRM2(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  103. MKL_INT IDAMAX(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  104. MKL_INT IDAMIN(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  105. void ZAXPY(const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  106. void ZAXPBY(const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy);
  107. void ZAXPYI(const MKL_INT *nz, const MKL_Complex16 *a, const MKL_Complex16 *x, const MKL_INT *indx, MKL_Complex16 *y);
  108. void ZCOPY(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  109. void ZDOTC(MKL_Complex16 *pres, const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  110. void ZDOTCI(MKL_Complex16 *pres,const MKL_INT *nz, const MKL_Complex16 *x, const MKL_INT *indx, const MKL_Complex16 *y);
  111. void ZDOTU(MKL_Complex16 *pres, const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  112. void ZDOTUI(MKL_Complex16 *pres, const MKL_INT *nz, const MKL_Complex16 *x, const MKL_INT *indx, const MKL_Complex16 *y);
  113. void ZDROT(const MKL_INT *n, MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy, const double *c, const double *s) NOTHROW;
  114. void ZDSCAL(const MKL_INT *n, const double *a, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  115. void ZGTHR(const MKL_INT *nz, const MKL_Complex16 *y, MKL_Complex16 *x, const MKL_INT *indx);
  116. void ZGTHRZ(const MKL_INT *nz, MKL_Complex16 *y, MKL_Complex16 *x, const MKL_INT *indx);
  117. void ZROT(const MKL_INT *n, MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy, const double *c, const MKL_Complex16 *s) NOTHROW;
  118. void ZROTG(MKL_Complex16 *a, const MKL_Complex16 *b, double *c, MKL_Complex16 *s) NOTHROW;
  119. void ZSCAL(const MKL_INT *n, const MKL_Complex16 *a, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  120. void ZSCTR(const MKL_INT *nz, const MKL_Complex16 *x, const MKL_INT *indx, MKL_Complex16 *y);
  121. void ZSWAP(const MKL_INT *n, MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  122. MKL_INT IZAMAX(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  123. MKL_INT IZAMIN(const MKL_INT *n,const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  124. /* BLAS Level2 */
  125. void SGBMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  126. const float *alpha, const float *a, const MKL_INT *lda, const float *x, const MKL_INT *incx,
  127. const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  128. void SGEMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const float *alpha,
  129. const float *a, const MKL_INT *lda, const float *x, const MKL_INT *incx,
  130. const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  131. void SGER(const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  132. const float *y, const MKL_INT *incy, float *a, const MKL_INT *lda) NOTHROW;
  133. void SSBMV(const char *uplo, const MKL_INT *n, const MKL_INT *k,
  134. const float *alpha, const float *a, const MKL_INT *lda, const float *x, const MKL_INT *incx,
  135. const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  136. void SSPMV(const char *uplo, const MKL_INT *n, const float *alpha, const float *ap,
  137. const float *x, const MKL_INT *incx, const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  138. void SSPR(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx, float *ap) NOTHROW;
  139. void SSPR2(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  140. const float *y, const MKL_INT *incy, float *ap) NOTHROW;
  141. void SSYMV(const char *uplo, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  142. const float *x, const MKL_INT *incx, const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  143. void SSYR(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  144. float *a, const MKL_INT *lda) NOTHROW;
  145. void SSYR2(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  146. const float *y, const MKL_INT *incy, float *a, const MKL_INT *lda) NOTHROW;
  147. void STBMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  148. const float *a, const MKL_INT *lda, float *x, const MKL_INT *incx) NOTHROW;
  149. void STBSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  150. const float *a, const MKL_INT *lda, float *x, const MKL_INT *incx) NOTHROW;
  151. void STPMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  152. const float *ap, float *x, const MKL_INT *incx) NOTHROW;
  153. void STPSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  154. const float *ap, float *x, const MKL_INT *incx) NOTHROW;
  155. void STRMV(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  156. const float *a, const MKL_INT *lda, float *b, const MKL_INT *incx) NOTHROW;
  157. void STRSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  158. const float *a, const MKL_INT *lda, float *x, const MKL_INT *incx) NOTHROW;
  159. void SGEM2VU(const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  160. const float *x1, const MKL_INT *incx1, const float *x2, const MKL_INT *incx2,
  161. const float *beta, float *y1, const MKL_INT *incy1, float *y2, const MKL_INT *incy2);
  162. void CGBMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  163. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  164. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *beta,
  165. MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  166. void CGEMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  167. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  168. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  169. void CGERC(const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  170. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  171. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  172. void CGERU(const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  173. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  174. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  175. void CHBMV(const char *uplo, const MKL_INT *n, const MKL_INT *k, const MKL_Complex8 *alpha,
  176. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  177. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  178. void CHEMV(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha,
  179. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  180. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  181. void CHER(const char *uplo, const MKL_INT *n, const float *alpha, const MKL_Complex8 *x, const MKL_INT *incx,
  182. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  183. void CHER2(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha,
  184. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  185. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  186. void CHPMV(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *ap,
  187. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *beta,
  188. MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  189. void CHPR(const char *uplo, const MKL_INT *n, const float *alpha, const MKL_Complex8 *x, const MKL_INT *incx,
  190. MKL_Complex8 *ap) NOTHROW;
  191. void CHPR2(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha,
  192. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  193. MKL_Complex8 *ap) NOTHROW;
  194. void CTBMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  195. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  196. void CTBSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  197. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  198. void CTPMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  199. const MKL_Complex8 *ap, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  200. void CTPSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  201. const MKL_Complex8 *ap, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  202. void CTRMV(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  203. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *b, const MKL_INT *incx) NOTHROW;
  204. void CTRSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  205. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  206. void CGEM2VC(const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  207. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x1, const MKL_INT *incx1,
  208. const MKL_Complex8 *x2, const MKL_INT *incx2, const MKL_Complex8 *beta,
  209. MKL_Complex8 *y1, const MKL_INT *incy1, MKL_Complex8 *y2, const MKL_INT *incy2);
  210. void SCGEMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  211. const float *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  212. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy);
  213. void DGBMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  214. const double *alpha, const double *a, const MKL_INT *lda, const double *x, const MKL_INT *incx,
  215. const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  216. void DGEMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const double *alpha,
  217. const double *a, const MKL_INT *lda, const double *x, const MKL_INT *incx,
  218. const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  219. void DGER(const MKL_INT *m, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  220. const double *y, const MKL_INT *incy, double *a, const MKL_INT *lda) NOTHROW;
  221. void DSBMV(const char *uplo, const MKL_INT *n, const MKL_INT *k, const double *alpha,
  222. const double *a, const MKL_INT *lda, const double *x, const MKL_INT *incx,
  223. const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  224. void DSPMV(const char *uplo, const MKL_INT *n, const double *alpha, const double *ap,
  225. const double *x, const MKL_INT *incx, const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  226. void DSPR(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx, double *ap) NOTHROW;
  227. void DSPR2(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  228. const double *y, const MKL_INT *incy, double *ap) NOTHROW;
  229. void DSYMV(const char *uplo, const MKL_INT *n, const double *alpha, const double *a, const MKL_INT *lda,
  230. const double *x, const MKL_INT *incx, const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  231. void DSYR(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  232. double *a, const MKL_INT *lda) NOTHROW;
  233. void DSYR2(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  234. const double *y, const MKL_INT *incy, double *a, const MKL_INT *lda) NOTHROW;
  235. void DTBMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  236. const double *a, const MKL_INT *lda, double *x, const MKL_INT *incx) NOTHROW;
  237. void DTBSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  238. const double *a, const MKL_INT *lda, double *x, const MKL_INT *incx) NOTHROW;
  239. void DTPMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  240. const double *ap, double *x, const MKL_INT *incx) NOTHROW;
  241. void DTPSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  242. const double *ap, double *x, const MKL_INT *incx) NOTHROW;
  243. void DTRMV(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  244. const double *a, const MKL_INT *lda, double *b, const MKL_INT *incx) NOTHROW;
  245. void DTRSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  246. const double *a, const MKL_INT *lda, double *x, const MKL_INT *incx) NOTHROW;
  247. void DGEM2VU(const MKL_INT *m, const MKL_INT *n, const double *alpha,
  248. const double *a, const MKL_INT *lda, const double *x1, const MKL_INT *incx1,
  249. const double *x2, const MKL_INT *incx2, const double *beta,
  250. double *y1, const MKL_INT *incy1, double *y2, const MKL_INT *incy2);
  251. void ZGBMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  252. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  253. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *beta,
  254. MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  255. void ZGEMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  256. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  257. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  258. void ZGERC(const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  259. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy,
  260. MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  261. void ZGERU(const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  262. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy,
  263. MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  264. void ZHBMV(const char *uplo, const MKL_INT *n, const MKL_INT *k, const MKL_Complex16 *alpha,
  265. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  266. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  267. void ZHEMV(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha,
  268. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  269. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  270. void ZHER(const char *uplo, const MKL_INT *n, const double *alpha,
  271. const MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  272. void ZHER2(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha,
  273. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy,
  274. MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  275. void ZHPMV(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *ap,
  276. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *beta,
  277. MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  278. void ZHPR(const char *uplo, const MKL_INT *n, const double *alpha, const MKL_Complex16 *x,
  279. const MKL_INT *incx, MKL_Complex16 *ap) NOTHROW;
  280. void ZHPR2(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha,
  281. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy,
  282. MKL_Complex16 *ap) NOTHROW;
  283. void ZTBMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  284. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  285. void ZTBSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  286. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  287. void ZTPMV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  288. const MKL_Complex16 *ap, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  289. void ZTPSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  290. MKL_Complex16 *ap, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  291. void ZTRMV(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  292. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *incx) NOTHROW;
  293. void ZTRSV(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  294. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  295. void ZGEM2VC(const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  296. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x1, const MKL_INT *incx1,
  297. const MKL_Complex16 *x2, const MKL_INT *incx2, const MKL_Complex16 *beta,
  298. MKL_Complex16 *y1, const MKL_INT *incy1, MKL_Complex16 *y2, const MKL_INT *incy2);
  299. void DZGEMV(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  300. const double *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  301. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy);
  302. /* BLAS Level3 */
  303. void SGEMM(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  304. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  305. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  306. size_t SGEMM_PACK_GET_SIZE(const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  307. void SGEMM_PACK(const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  308. const float *alpha, const float *src, const MKL_INT *ld, float *dest);
  309. void SGEMM_COMPUTE(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  310. const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb, const float *beta, float *c, const MKL_INT *ldc);
  311. void SGEMM_BATCH(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  312. const float *alpha_array, const float **a_array, const MKL_INT *lda_array, const float **b_array, const MKL_INT *ldb_array,
  313. const float *beta_array, float **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  314. void SGEMM_BATCH_STRIDED(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  315. const float *alpha, const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  316. const float *b, const MKL_INT *ldb, const MKL_INT *strideb,
  317. const float *beta, float *c, const MKL_INT *ldc, const MKL_INT *stridec,
  318. const MKL_INT *batch_size) NOTHROW;
  319. void SGEMMT(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  320. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  321. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  322. void SSYMM(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  323. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  324. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  325. void SSYR2K(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  326. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  327. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  328. void SSYRK(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  329. const float *alpha, const float *a, const MKL_INT *lda,
  330. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  331. void SSYRK_BATCH_STRIDED(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  332. const float *alpha, const float *a, const MKL_INT *lda, const MKL_INT *stridea, const float *beta,
  333. float *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  334. void SSYRK_BATCH(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  335. const float *alpha_array, const float **a_array, const MKL_INT *lda_array, const float *beta_array,
  336. float **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  337. void STRMM(const char *side, const char *uplo, const char *transa, const char *diag,
  338. const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  339. float *b, const MKL_INT *ldb) NOTHROW;
  340. void STRSM(const char *side, const char *uplo, const char *transa, const char *diag,
  341. const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  342. float *b, const MKL_INT *ldb) NOTHROW;
  343. void STRSM_BATCH(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  344. const MKL_INT *m_array, const MKL_INT *n_array, const float *alpha_array, const float **a_array,
  345. const MKL_INT *lda_array, float **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  346. void STRSM_BATCH_STRIDED(const char *side, const char *uplo, const char *transa, const char *diag,
  347. const MKL_INT *m, const MKL_INT *n,
  348. const float *alpha, const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  349. float *b, const MKL_INT *ldb, const MKL_INT *strideb,
  350. const MKL_INT *batch_size) NOTHROW;
  351. void CGEMM(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  352. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  353. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  354. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  355. void CGEMM_BATCH(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  356. const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array, const MKL_INT *lda_array, const MKL_Complex8 **b_array, const MKL_INT *ldb_array,
  357. const MKL_Complex8 *beta_array, MKL_Complex8 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  358. void CGEMM_BATCH_STRIDED(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  359. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  360. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  361. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  362. const MKL_INT *batch_size) NOTHROW;
  363. void SCGEMM(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  364. const MKL_Complex8 *alpha, const float *a, const MKL_INT *lda,
  365. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  366. MKL_Complex8 *c, const MKL_INT *ldc);
  367. void CGEMM3M(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  368. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  369. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  370. MKL_Complex8 *c, const MKL_INT *ldc);
  371. void CGEMM3M_BATCH(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  372. const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array, const MKL_INT *lda_array, const MKL_Complex8 **b_array, const MKL_INT *ldb_array,
  373. const MKL_Complex8 *beta_array, MKL_Complex8 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size);
  374. void CGEMMT(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  375. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  376. const MKL_Complex8 *b, const MKL_INT *ldb,
  377. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  378. void CTRSM_BATCH(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  379. const MKL_INT *m_array, const MKL_INT *n_array, const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array,
  380. const MKL_INT *lda_array, MKL_Complex8 **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  381. void CTRSM_BATCH_STRIDED(const char *side, const char *uplo, const char *transa, const char *diag,
  382. const MKL_INT *m, const MKL_INT *n,
  383. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  384. MKL_Complex8 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  385. const MKL_INT *batch_size) NOTHROW;
  386. void CHEMM(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  387. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  388. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  389. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  390. void CHER2K(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  391. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  392. const MKL_Complex8 *b, const MKL_INT *ldb, const float *beta,
  393. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  394. void CHERK(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  395. const float *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  396. const float *beta, MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  397. void CSYMM(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  398. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *b, const MKL_INT *ldb,
  399. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  400. void CSYR2K(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  401. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  402. const MKL_Complex8 *b, const MKL_INT *ldb,
  403. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  404. void CSYRK(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  405. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  406. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  407. void CSYRK_BATCH(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  408. const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array, const MKL_INT *lda_array,
  409. const MKL_Complex8 *beta_array, MKL_Complex8 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  410. void CSYRK_BATCH_STRIDED(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  411. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea, const MKL_Complex8 *beta,
  412. MKL_Complex8 *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  413. void CTRMM(const char *side, const char *uplo, const char *transa, const char *diag,
  414. const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  415. const MKL_Complex8 *a, const MKL_INT *lda,
  416. MKL_Complex8 *b, const MKL_INT *ldb) NOTHROW;
  417. void CTRSM(const char *side, const char *uplo, const char *transa, const char *diag,
  418. const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  419. const MKL_Complex8 *a, const MKL_INT *lda,
  420. MKL_Complex8 *b, const MKL_INT *ldb) NOTHROW;
  421. void DGEMM(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  422. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  423. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  424. size_t DGEMM_PACK_GET_SIZE(const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  425. void DGEMM_PACK(const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  426. const double *alpha, const double *src, const MKL_INT *ld, double *dest);
  427. void DGEMM_COMPUTE(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  428. const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb, const double *beta, double *c, const MKL_INT *ldc);
  429. void DGEMM_BATCH(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  430. const double *alpha_array, const double **a_array, const MKL_INT *lda_array, const double **b_array, const MKL_INT *ldb_array,
  431. const double *beta_array, double **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  432. void DGEMM_BATCH_STRIDED(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  433. const double *alpha, const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  434. const double *b, const MKL_INT *ldb, const MKL_INT *strideb,
  435. const double *beta, double *c, const MKL_INT *ldc, const MKL_INT *stridec,
  436. const MKL_INT *batch_size) NOTHROW;
  437. void DGEMMT(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  438. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  439. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  440. void DSYMM(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  441. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  442. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  443. void DSYR2K(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  444. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  445. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  446. void DSYRK(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  447. const double *alpha, const double *a, const MKL_INT *lda, const double *beta,
  448. double *c, const MKL_INT *ldc) NOTHROW;
  449. void DSYRK_BATCH(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  450. const double *alpha_array, const double **a_array, const MKL_INT *lda_array,
  451. const double *beta_array, double **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  452. void DSYRK_BATCH_STRIDED(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  453. const double *alpha, const double *a, const MKL_INT *lda, const MKL_INT *stridea, const double *beta,
  454. double *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  455. void DTRMM(const char *side, const char *uplo, const char *transa, const char *diag,
  456. const MKL_INT *m, const MKL_INT *n, const double *alpha, const double *a, const MKL_INT *lda,
  457. double *b, const MKL_INT *ldb) NOTHROW;
  458. void DTRSM(const char *side, const char *uplo, const char *transa, const char *diag,
  459. const MKL_INT *m, const MKL_INT *n, const double *alpha, const double *a, const MKL_INT *lda,
  460. double *b, const MKL_INT *ldb) NOTHROW;
  461. void DTRSM_BATCH(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  462. const MKL_INT *m_array, const MKL_INT *n_array, const double *alpha_array, const double **a_array,
  463. const MKL_INT *lda_array, double **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  464. void DTRSM_BATCH_STRIDED(const char *side, const char *uplo, const char *transa, const char *diag,
  465. const MKL_INT *m, const MKL_INT *n,
  466. const double *alpha, const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  467. double *b, const MKL_INT *ldb, const MKL_INT *strideb,
  468. const MKL_INT *batch_size) NOTHROW;
  469. void ZGEMM(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  470. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  471. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  472. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  473. void ZGEMM_BATCH(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  474. const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array, const MKL_INT *lda_array, const MKL_Complex16 **b_array, const MKL_INT *ldb_array,
  475. const MKL_Complex16 *beta_array, MKL_Complex16 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  476. void ZGEMM_BATCH_STRIDED(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  477. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  478. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  479. const MKL_Complex16 *beta, MKL_Complex16 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  480. const MKL_INT *batch_size) NOTHROW;
  481. void DZGEMM(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  482. const MKL_Complex16 *alpha, const double *a, const MKL_INT *lda,
  483. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  484. MKL_Complex16 *c, const MKL_INT *ldc);
  485. void ZGEMM3M(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  486. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  487. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  488. MKL_Complex16 *c, const MKL_INT *ldc);
  489. void ZGEMM3M_BATCH(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  490. const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array, const MKL_INT *lda_array, const MKL_Complex16 **b_array, const MKL_INT *ldb_array,
  491. const MKL_Complex16 *beta_array, MKL_Complex16 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size);
  492. void ZGEMMT(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  493. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  494. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  495. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  496. void ZHEMM(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  497. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  498. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  499. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  500. void ZHER2K(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  501. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  502. const MKL_Complex16 *b, const MKL_INT *ldb, const double *beta,
  503. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  504. void ZHERK(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  505. const double *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  506. const double *beta, MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  507. void ZSYMM(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  508. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  509. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  510. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  511. void ZSYR2K(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  512. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  513. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  514. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  515. void ZSYRK(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  516. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  517. const MKL_Complex16 *beta, MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  518. void ZSYRK_BATCH(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  519. const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array, const MKL_INT *lda_array,
  520. const MKL_Complex16 *beta_array, MKL_Complex16 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  521. void ZSYRK_BATCH_STRIDED(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  522. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea, const MKL_Complex16 *beta,
  523. MKL_Complex16 *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  524. void ZTRMM(const char *side, const char *uplo, const char *transa, const char *diag,
  525. const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  526. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *ldb) NOTHROW;
  527. void ZTRSM(const char *side, const char *uplo, const char *transa, const char *diag,
  528. const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  529. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *ldb) NOTHROW;
  530. void ZTRSM_BATCH(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  531. const MKL_INT *m_array, const MKL_INT *n_array, const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array,
  532. const MKL_INT *lda_array, MKL_Complex16 **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  533. void ZTRSM_BATCH_STRIDED(const char *side, const char *uplo, const char *transa, const char *diag,
  534. const MKL_INT *m, const MKL_INT *n,
  535. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  536. MKL_Complex16 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  537. const MKL_INT *batch_size) NOTHROW;
  538. void GEMM_S8U8S32(const char *transa, const char *transb, const char *offsetc,
  539. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  540. const float *alpha, const MKL_INT8 *a, const MKL_INT *lda, const MKL_INT8 *ao,
  541. const MKL_UINT8 *b, const MKL_INT *ldb, const MKL_INT8 *bo,
  542. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  543. void GEMM_S16S16S32(const char *transa, const char *transb, const char *offsetc,
  544. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  545. const float *alpha, const MKL_INT16 *a, const MKL_INT *lda, const MKL_INT16 *ao,
  546. const MKL_INT16 *b, const MKL_INT *ldb, const MKL_INT16 *bo,
  547. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  548. size_t GEMM_S8U8S32_PACK_GET_SIZE (const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  549. size_t GEMM_S16S16S32_PACK_GET_SIZE (const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  550. void GEMM_S8U8S32_PACK (const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  551. const void *src, const MKL_INT *ld, void *dest);
  552. void GEMM_S16S16S32_PACK (const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  553. const MKL_INT16 *src, const MKL_INT *ld, MKL_INT16 *dest);
  554. void GEMM_S8U8S32_COMPUTE (const char *transa, const char *transb, const char *offsetc,
  555. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  556. const float *alpha,
  557. const MKL_INT8 *a, const MKL_INT *lda, const MKL_INT8 *ao,
  558. const MKL_UINT8 *b, const MKL_INT *ldb, const MKL_INT8 *bo,
  559. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  560. void GEMM_S16S16S32_COMPUTE(const char *transa, const char *transb, const char *offsetc,
  561. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  562. const float *alpha,
  563. const MKL_INT16 *a, const MKL_INT *lda, const MKL_INT16 *ao,
  564. const MKL_INT16 *b, const MKL_INT *ldb, const MKL_INT16 *bo,
  565. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  566. void HGEMM(const char *transa, const char *transb,
  567. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  568. const MKL_F16 *alpha, const MKL_F16 *a, const MKL_INT *lda,
  569. const MKL_F16 *b, const MKL_INT *ldb,
  570. const MKL_F16 *beta, MKL_F16 *c, const MKL_INT *ldc);
  571. size_t HGEMM_PACK_GET_SIZE (const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  572. void HGEMM_PACK (const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  573. const MKL_F16 *alpha, const MKL_F16 *src, const MKL_INT *ld, MKL_F16 *dest);
  574. void HGEMM_COMPUTE(const char *transa, const char *transb,
  575. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  576. const MKL_F16 *a, const MKL_INT *lda,
  577. const MKL_F16 *b, const MKL_INT *ldb,
  578. const MKL_F16 *beta, MKL_F16 *c, const MKL_INT *ldc);
  579. /* Lower case declaration */
  580. void xerbla(const char *srname, const int *info, const int lsrname);
  581. int lsame(const char *ca, const char *cb, const MKL_INT lca, const MKL_INT lcb);
  582. /* BLAS Level1 */
  583. float scabs1(const MKL_Complex8 *c);
  584. float sasum(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  585. void saxpy(const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx, float *y, const MKL_INT *incy) NOTHROW;
  586. void saxpby(const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx, const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  587. void saxpyi(const MKL_INT *nz, const float *a, const float *x, const MKL_INT *indx, float *y);
  588. float scasum(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  589. float scnrm2(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  590. void scopy(const MKL_INT *n, const float *x, const MKL_INT *incx, float *y, const MKL_INT *incy) NOTHROW;
  591. float sdot(const MKL_INT *n, const float *x, const MKL_INT *incx, const float *y, const MKL_INT *incy) NOTHROW;
  592. float sdoti(const MKL_INT *nz, const float *x, const MKL_INT *indx, const float *y);
  593. float sdsdot(const MKL_INT *n, const float *sb, const float *x, const MKL_INT *incx, const float *y, const MKL_INT *incy) NOTHROW;
  594. void sgthr(const MKL_INT *nz, const float *y, float *x, const MKL_INT *indx);
  595. void sgthrz(const MKL_INT *nz, float *y, float *x, const MKL_INT *indx);
  596. float snrm2(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  597. void srot(const MKL_INT *n, float *x, const MKL_INT *incx, float *y, const MKL_INT *incy, const float *c, const float *s) NOTHROW;
  598. void srotg(float *a,float *b,float *c,float *s) NOTHROW;
  599. void sroti(const MKL_INT *nz, float *x, const MKL_INT *indx, float *y, const float *c, const float *s);
  600. void srotm(const MKL_INT *n, float *x, const MKL_INT *incx, float *y, const MKL_INT *incy, const float *param) NOTHROW;
  601. void srotmg(float *d1, float *d2, float *x1, const float *y1, float *param) NOTHROW;
  602. void sscal(const MKL_INT *n, const float *a, float *x, const MKL_INT *incx) NOTHROW;
  603. void ssctr(const MKL_INT *nz, const float *x, const MKL_INT *indx, float *y);
  604. void sswap(const MKL_INT *n, float *x, const MKL_INT *incx, float *y, const MKL_INT *incy) NOTHROW;
  605. MKL_INT isamax(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  606. MKL_INT isamin(const MKL_INT *n, const float *x, const MKL_INT *incx) NOTHROW;
  607. void caxpy(const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  608. void caxpby(const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  609. void caxpyi(const MKL_INT *nz, const MKL_Complex8 *a, const MKL_Complex8 *x, const MKL_INT *indx, MKL_Complex8 *y);
  610. void ccopy(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  611. void cdotc(MKL_Complex8 *pres, const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  612. void cdotci(MKL_Complex8 *pres, const MKL_INT *nz, const MKL_Complex8 *x, const MKL_INT *indx, const MKL_Complex8 *y);
  613. void cdotu(MKL_Complex8 *pres, const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  614. void cdotui(MKL_Complex8 *pres, const MKL_INT *nz, const MKL_Complex8 *x, const MKL_INT *indx, const MKL_Complex8 *y);
  615. void cgthr(const MKL_INT *nz, const MKL_Complex8 *y, MKL_Complex8 *x, const MKL_INT *indx);
  616. void cgthrz(const MKL_INT *nz, MKL_Complex8 *y, MKL_Complex8 *x, const MKL_INT *indx);
  617. void crotg(MKL_Complex8 *a, const MKL_Complex8 *b, float *c, MKL_Complex8 *s) NOTHROW;
  618. void cscal(const MKL_INT *n, const MKL_Complex8 *a, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  619. void csctr(const MKL_INT *nz, const MKL_Complex8 *x, const MKL_INT *indx, MKL_Complex8 *y);
  620. void csrot(const MKL_INT *n, MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy, const float *c, const float *s) NOTHROW;
  621. void crot(const MKL_INT *n, MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy, const float *c, const MKL_Complex8 *s) NOTHROW;
  622. void csscal(const MKL_INT *n, const float *a, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  623. void cswap(const MKL_INT *n, MKL_Complex8 *x, const MKL_INT *incx, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  624. MKL_INT icamax(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  625. MKL_INT icamin(const MKL_INT *n, const MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  626. double dcabs1(const MKL_Complex16 *z);
  627. double dasum(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  628. void daxpy(const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx, double *y, const MKL_INT *incy) NOTHROW;
  629. void daxpby(const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx, const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  630. void daxpyi(const MKL_INT *nz, const double *a, const double *x, const MKL_INT *indx, double *y);
  631. void dcopy(const MKL_INT *n, const double *x, const MKL_INT *incx, double *y, const MKL_INT *incy) NOTHROW;
  632. double ddot(const MKL_INT *n, const double *x, const MKL_INT *incx, const double *y, const MKL_INT *incy) NOTHROW;
  633. double dsdot(const MKL_INT *n, const float *x, const MKL_INT *incx, const float *y, const MKL_INT *incy) NOTHROW;
  634. double ddoti(const MKL_INT *nz, const double *x, const MKL_INT *indx, const double *y);
  635. void dgthr(const MKL_INT *nz, const double *y, double *x, const MKL_INT *indx);
  636. void dgthrz(const MKL_INT *nz, double *y, double *x, const MKL_INT *indx);
  637. double dnrm2(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  638. void drot(const MKL_INT *n, double *x, const MKL_INT *incx, double *y, const MKL_INT *incy, const double *c, const double *s) NOTHROW;
  639. void drotg(double *a, double *b, double *c, double *s) NOTHROW;
  640. void droti(const MKL_INT *nz, double *x, const MKL_INT *indx, double *y, const double *c, const double *s);
  641. void drotm(const MKL_INT *n, double *x, const MKL_INT *incx, double *y, const MKL_INT *incy, const double *param) NOTHROW;
  642. void drotmg(double *d1, double *d2, double *x1, const double *y1, double *param) NOTHROW;
  643. void dscal(const MKL_INT *n, const double *a, double *x, const MKL_INT *incx) NOTHROW;
  644. void dsctr(const MKL_INT *nz, const double *x, const MKL_INT *indx, double *y);
  645. void dswap(const MKL_INT *n, double *x, const MKL_INT *incx, double *y, const MKL_INT *incy) NOTHROW;
  646. double dzasum(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  647. double dznrm2(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  648. MKL_INT idamax(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  649. MKL_INT idamin(const MKL_INT *n, const double *x, const MKL_INT *incx) NOTHROW;
  650. void zaxpy(const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  651. void zaxpby(const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  652. void zaxpyi(const MKL_INT *nz, const MKL_Complex16 *a, const MKL_Complex16 *x, const MKL_INT *indx, MKL_Complex16 *y);
  653. void zcopy(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  654. void zdotc(MKL_Complex16 *pres, const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  655. void zdotci(MKL_Complex16 *pres, const MKL_INT *nz, const MKL_Complex16 *x, const MKL_INT *indx, const MKL_Complex16 *y);
  656. void zdotu(MKL_Complex16 *pres, const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  657. void zdotui(MKL_Complex16 *pres, const MKL_INT *nz, const MKL_Complex16 *x, const MKL_INT *indx, const MKL_Complex16 *y);
  658. void zdrot(const MKL_INT *n, MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy, const double *c, const double *s) NOTHROW;
  659. void zrot(const MKL_INT *n, MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy, const double *c, const MKL_Complex16 *s) NOTHROW;
  660. void zdscal(const MKL_INT *n, const double *a, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  661. void zgthr(const MKL_INT *nz, const MKL_Complex16 *y, MKL_Complex16 *x, const MKL_INT *indx);
  662. void zgthrz(const MKL_INT *nz, MKL_Complex16 *y, MKL_Complex16 *x, const MKL_INT *indx);
  663. void zrotg(MKL_Complex16 *a, const MKL_Complex16 *b, double *c, MKL_Complex16 *s) NOTHROW;
  664. void zscal(const MKL_INT *n, const MKL_Complex16 *a, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  665. void zsctr(const MKL_INT *nz, const MKL_Complex16 *x, const MKL_INT *indx, MKL_Complex16 *y);
  666. void zswap(const MKL_INT *n, MKL_Complex16 *x, const MKL_INT *incx, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  667. MKL_INT izamax(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  668. MKL_INT izamin(const MKL_INT *n, const MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  669. /* blas level2 */
  670. void sgbmv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  671. const float *alpha, const float *a, const MKL_INT *lda, const float *x, const MKL_INT *incx,
  672. const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  673. void sgemv(const char *trans, const MKL_INT *m, const MKL_INT *n, const float *alpha,
  674. const float *a, const MKL_INT *lda, const float *x, const MKL_INT *incx,
  675. const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  676. void sger(const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  677. const float *y, const MKL_INT *incy, float *a, const MKL_INT *lda) NOTHROW;
  678. void ssbmv(const char *uplo, const MKL_INT *n, const MKL_INT *k, const float *alpha,
  679. const float *a, const MKL_INT *lda, const float *x, const MKL_INT *incx,
  680. const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  681. void sspmv(const char *uplo, const MKL_INT *n, const float *alpha, const float *ap,
  682. const float *x, const MKL_INT *incx, const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  683. void sspr(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  684. float *ap) NOTHROW;
  685. void sspr2(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  686. const float *y, const MKL_INT *incy, float *ap) NOTHROW;
  687. void ssymv(const char *uplo, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  688. const float *x, const MKL_INT *incx, const float *beta, float *y, const MKL_INT *incy) NOTHROW;
  689. void ssyr(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  690. float *a, const MKL_INT *lda) NOTHROW;
  691. void ssyr2(const char *uplo, const MKL_INT *n, const float *alpha, const float *x, const MKL_INT *incx,
  692. const float *y, const MKL_INT *incy, float *a, const MKL_INT *lda) NOTHROW;
  693. void stbmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  694. const float *a, const MKL_INT *lda, float *x, const MKL_INT *incx) NOTHROW;
  695. void stbsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  696. const float *a, const MKL_INT *lda, float *x, const MKL_INT *incx) NOTHROW;
  697. void stpmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const float *ap,
  698. float *x, const MKL_INT *incx) NOTHROW;
  699. void stpsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const float *ap,
  700. float *x, const MKL_INT *incx) NOTHROW;
  701. void strmv(const char *uplo, const char *transa, const char *diag, const MKL_INT *n, const float *a,
  702. const MKL_INT *lda, float *b, const MKL_INT *incx) NOTHROW;
  703. void strsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  704. const float *a, const MKL_INT *lda, float *x, const MKL_INT *incx) NOTHROW;
  705. void sgem2vu(const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  706. const float *x1, const MKL_INT *incx1, const float *x2, const MKL_INT *incx2,
  707. const float *beta, float *y1, const MKL_INT *incy1, float *y2, const MKL_INT *incy2);
  708. void cgbmv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  709. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  710. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *beta,
  711. MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  712. void cgemv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  713. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  714. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  715. void cgerc(const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  716. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  717. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  718. void cgeru(const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  719. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  720. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  721. void chbmv(const char *uplo, const MKL_INT *n, const MKL_INT *k, const MKL_Complex8 *alpha,
  722. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  723. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  724. void chemv(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha,
  725. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  726. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  727. void cher(const char *uplo, const MKL_INT *n, const float *alpha, const MKL_Complex8 *x, const MKL_INT *incx,
  728. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  729. void cher2(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha,
  730. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *y, const MKL_INT *incy,
  731. MKL_Complex8 *a, const MKL_INT *lda) NOTHROW;
  732. void chpmv(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *ap,
  733. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_Complex8 *beta,
  734. MKL_Complex8 *y, const MKL_INT *incy) NOTHROW;
  735. void chpr(const char *uplo, const MKL_INT *n, const float *alpha, const MKL_Complex8 *x, const MKL_INT *incx,
  736. MKL_Complex8 *ap) NOTHROW;
  737. void chpr2(const char *uplo, const MKL_INT *n, const MKL_Complex8 *alpha, const MKL_Complex8 *x, const MKL_INT *incx,
  738. const MKL_Complex8 *y, const MKL_INT *incy, MKL_Complex8 *ap) NOTHROW;
  739. void ctbmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  740. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  741. void ctbsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  742. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  743. void ctpmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  744. const MKL_Complex8 *ap, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  745. void ctpsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  746. const MKL_Complex8 *ap, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  747. void ctrmv(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  748. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *b, const MKL_INT *incx) NOTHROW;
  749. void ctrsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  750. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *x, const MKL_INT *incx) NOTHROW;
  751. void cgem2vc(const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  752. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_Complex8 *x1, const MKL_INT *incx1,
  753. const MKL_Complex8 *x2, const MKL_INT *incx2, const MKL_Complex8 *beta,
  754. MKL_Complex8 *y1, const MKL_INT *incy1, MKL_Complex8 *y2, const MKL_INT *incy2);
  755. void scgemv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  756. const float *a, const MKL_INT *lda, const MKL_Complex8 *x, const MKL_INT *incx,
  757. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy);
  758. void dgbmv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  759. const double *alpha, const double *a, const MKL_INT *lda, const double *x, const MKL_INT *incx,
  760. const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  761. void dgemv(const char *trans, const MKL_INT *m, const MKL_INT *n, const double *alpha,
  762. const double *a, const MKL_INT *lda, const double *x, const MKL_INT *incx,
  763. const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  764. void dger(const MKL_INT *m, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  765. const double *y, const MKL_INT *incy, double *a, const MKL_INT *lda) NOTHROW;
  766. void dsbmv(const char *uplo, const MKL_INT *n, const MKL_INT *k, const double *alpha,
  767. const double *a, const MKL_INT *lda, const double *x, const MKL_INT *incx,
  768. const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  769. void dspmv(const char *uplo, const MKL_INT *n, const double *alpha, const double *ap,
  770. const double *x, const MKL_INT *incx, const double *beta,
  771. double *y, const MKL_INT *incy) NOTHROW;
  772. void dspr(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  773. double *ap) NOTHROW;
  774. void dspr2(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  775. const double *y, const MKL_INT *incy, double *ap) NOTHROW;
  776. void dsymv(const char *uplo, const MKL_INT *n, const double *alpha, const double *a, const MKL_INT *lda,
  777. const double *x, const MKL_INT *incx, const double *beta, double *y, const MKL_INT *incy) NOTHROW;
  778. void dsyr(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  779. double *a, const MKL_INT *lda) NOTHROW;
  780. void dsyr2(const char *uplo, const MKL_INT *n, const double *alpha, const double *x, const MKL_INT *incx,
  781. const double *y, const MKL_INT *incy, double *a, const MKL_INT *lda) NOTHROW;
  782. void dtbmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  783. const double *a, const MKL_INT *lda, double *x, const MKL_INT *incx) NOTHROW;
  784. void dtbsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  785. const double *a, const MKL_INT *lda, double *x, const MKL_INT *incx) NOTHROW;
  786. void dtpmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  787. const double *ap, double *x, const MKL_INT *incx) NOTHROW;
  788. void dtpsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  789. const double *ap, double *x, const MKL_INT *incx) NOTHROW;
  790. void dtrmv(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  791. const double *a, const MKL_INT *lda, double *b, const MKL_INT *incx) NOTHROW;
  792. void dtrsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  793. const double *a, const MKL_INT *lda, double *x, const MKL_INT *incx) NOTHROW;
  794. void dgem2vu(const MKL_INT *m, const MKL_INT *n, const double *alpha,
  795. const double *a, const MKL_INT *lda, const double *x1, const MKL_INT *incx1,
  796. const double *x2, const MKL_INT *incx2, const double *beta,
  797. double *y1, const MKL_INT *incy1, double *y2, const MKL_INT *incy2);
  798. void zgbmv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *kl, const MKL_INT *ku,
  799. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  800. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *beta,
  801. MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  802. void zgemv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  803. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  804. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  805. void zgerc(const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx,
  806. const MKL_Complex16 *y, const MKL_INT *incy, MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  807. void zgeru(const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx,
  808. const MKL_Complex16 *y, const MKL_INT *incy, MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  809. void zhbmv(const char *uplo, const MKL_INT *n, const MKL_INT *k, const MKL_Complex16 *alpha,
  810. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  811. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  812. void zhemv(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha,
  813. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  814. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  815. void zher(const char *uplo, const MKL_INT *n, const double *alpha, const MKL_Complex16 *x, const MKL_INT *incx,
  816. MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  817. void zher2(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha,
  818. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *y, const MKL_INT *incy,
  819. MKL_Complex16 *a, const MKL_INT *lda) NOTHROW;
  820. void zhpmv(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *ap,
  821. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_Complex16 *beta,
  822. MKL_Complex16 *y, const MKL_INT *incy) NOTHROW;
  823. void zhpr(const char *uplo, const MKL_INT *n, const double *alpha, const MKL_Complex16 *x, const MKL_INT *incx,
  824. MKL_Complex16 *ap) NOTHROW;
  825. void zhpr2(const char *uplo, const MKL_INT *n, const MKL_Complex16 *alpha, const MKL_Complex16 *x, const MKL_INT *incx,
  826. const MKL_Complex16 *y, const MKL_INT *incy, MKL_Complex16 *ap) NOTHROW;
  827. void ztbmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  828. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  829. void ztbsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n, const MKL_INT *k,
  830. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  831. void ztpmv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  832. const MKL_Complex16 *ap, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  833. void ztpsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  834. const MKL_Complex16 *ap, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  835. void ztrmv(const char *uplo, const char *transa, const char *diag, const MKL_INT *n,
  836. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *incx) NOTHROW;
  837. void ztrsv(const char *uplo, const char *trans, const char *diag, const MKL_INT *n,
  838. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *x, const MKL_INT *incx) NOTHROW;
  839. void zgem2vc(const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  840. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_Complex16 *x1, const MKL_INT *incx1,
  841. const MKL_Complex16 *x2, const MKL_INT *incx2, const MKL_Complex16 *beta,
  842. MKL_Complex16 *y1, const MKL_INT *incy1, MKL_Complex16 *y2, const MKL_INT *incy2);
  843. void dzgemv(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  844. const double *a, const MKL_INT *lda, const MKL_Complex16 *x, const MKL_INT *incx,
  845. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy);
  846. /* blas level3 */
  847. void sgemm(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  848. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  849. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  850. size_t sgemm_pack_get_size(const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  851. void sgemm_pack(const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  852. const float *alpha, const float *src, const MKL_INT *ld, float *dest);
  853. void sgemm_compute(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  854. const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb, const float *beta, float *c, const MKL_INT *ldc);
  855. void sgemm_batch(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  856. const float *alpha_array, const float **a_array, const MKL_INT *lda_array, const float **b_array, const MKL_INT *ldb_array,
  857. const float *beta_array, float **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  858. void sgemm_batch_strided(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  859. const float *alpha, const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  860. const float *b, const MKL_INT *ldb, const MKL_INT *strideb,
  861. const float *beta, float *c, const MKL_INT *ldc, const MKL_INT *stridec,
  862. const MKL_INT *batch_size) NOTHROW;
  863. void sgemmt(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  864. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  865. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  866. void ssymm(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  867. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  868. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  869. void ssyr2k(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  870. const float *alpha, const float *a, const MKL_INT *lda, const float *b, const MKL_INT *ldb,
  871. const float *beta, float *c, const MKL_INT *ldc) NOTHROW;
  872. void ssyrk(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  873. const float *alpha, const float *a, const MKL_INT *lda, const float *beta,
  874. float *c, const MKL_INT *ldc) NOTHROW;
  875. void ssyrk_batch(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  876. const float *alpha_array, const float **a_array, const MKL_INT *lda_array, const float *beta_array,
  877. float **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  878. void ssyrk_batch_strided(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  879. const float *alpha, const float *a, const MKL_INT *lda, const MKL_INT *stridea, const float *beta,
  880. float *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  881. void strmm(const char *side, const char *uplo, const char *transa, const char *diag,
  882. const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  883. float *b, const MKL_INT *ldb) NOTHROW;
  884. void strsm(const char *side, const char *uplo, const char *transa, const char *diag,
  885. const MKL_INT *m, const MKL_INT *n, const float *alpha, const float *a, const MKL_INT *lda,
  886. float *b, const MKL_INT *ldb) NOTHROW;
  887. void strsm_batch(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  888. const MKL_INT *m_array, const MKL_INT *n_array, const float *alpha_array, const float **a_array,
  889. const MKL_INT *lda_array, float **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  890. void strsm_batch_strided(const char *side, const char *uplo, const char *transa, const char *diag,
  891. const MKL_INT *m, const MKL_INT *n,
  892. const float *alpha, const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  893. float *b, const MKL_INT *ldb, const MKL_INT *strideb,
  894. const MKL_INT *batch_size) NOTHROW;
  895. void cgemm(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  896. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  897. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  898. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  899. void cgemm_batch(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  900. const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array, const MKL_INT *lda_array, const MKL_Complex8 **b_array, const MKL_INT *ldb_array,
  901. const MKL_Complex8 *beta_array, MKL_Complex8 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  902. void cgemm_batch_strided(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  903. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  904. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  905. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  906. const MKL_INT *batch_size) NOTHROW;
  907. void scgemm(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  908. const MKL_Complex8 *alpha, const float *a, const MKL_INT *lda,
  909. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  910. MKL_Complex8 *c, const MKL_INT *ldc);
  911. void cgemm3m(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  912. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  913. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  914. MKL_Complex8 *c, const MKL_INT *ldc);
  915. void cgemm3m_batch(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  916. const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array, const MKL_INT *lda_array, const MKL_Complex8 **b_array, const MKL_INT *ldb_array,
  917. const MKL_Complex8 *beta_array, MKL_Complex8 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size);
  918. void cgemmt(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  919. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  920. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  921. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  922. void chemm(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  923. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  924. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  925. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  926. void cher2k(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  927. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  928. const MKL_Complex8 *b, const MKL_INT *ldb, const float *beta,
  929. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  930. void cherk(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  931. const float *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const float *beta,
  932. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  933. void csymm(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  934. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  935. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  936. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  937. void csyr2k(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  938. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  939. const MKL_Complex8 *b, const MKL_INT *ldb, const MKL_Complex8 *beta,
  940. MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  941. void csyrk(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  942. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda,
  943. const MKL_Complex8 *beta, MKL_Complex8 *c, const MKL_INT *ldc) NOTHROW;
  944. void csyrk_batch(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  945. const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array, const MKL_INT *lda_array,
  946. const MKL_Complex8 *beta_array, MKL_Complex8 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  947. void csyrk_batch_strided(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  948. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea, const MKL_Complex8 *beta,
  949. MKL_Complex8 *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  950. void ctrmm(const char *side, const char *uplo, const char *transa, const char *diag,
  951. const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  952. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *b, const MKL_INT *ldb) NOTHROW;
  953. void ctrsm(const char *side, const char *uplo, const char *transa, const char *diag,
  954. const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  955. const MKL_Complex8 *a, const MKL_INT *lda, MKL_Complex8 *b, const MKL_INT *ldb) NOTHROW;
  956. void ctrsm_batch(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  957. const MKL_INT *m_array, const MKL_INT *n_array, const MKL_Complex8 *alpha_array, const MKL_Complex8 **a_array,
  958. const MKL_INT *lda_array, MKL_Complex8 **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  959. void ctrsm_batch_strided(const char *side, const char *uplo, const char *transa, const char *diag,
  960. const MKL_INT *m, const MKL_INT *n,
  961. const MKL_Complex8 *alpha, const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  962. MKL_Complex8 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  963. const MKL_INT *batch_size) NOTHROW;
  964. void dgemm(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  965. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  966. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  967. size_t dgemm_pack_get_size(const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  968. void dgemm_pack(const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  969. const double *alpha, const double *src, const MKL_INT *ld, double *dest);
  970. void dgemm_compute(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  971. const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb, const double *beta, double *c, const MKL_INT *ldc);
  972. void dgemm_batch(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  973. const double *alpha_array, const double **a_array, const MKL_INT *lda_array, const double **b_array, const MKL_INT *ldb_array,
  974. const double *beta_array, double **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  975. void dgemm_batch_strided(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  976. const double *alpha, const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  977. const double *b, const MKL_INT *ldb, const MKL_INT *strideb,
  978. const double *beta, double *c, const MKL_INT *ldc, const MKL_INT *stridec,
  979. const MKL_INT *batch_size) NOTHROW;
  980. void dgemmt(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  981. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  982. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  983. void dsymm(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  984. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  985. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  986. void dsyr2k(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  987. const double *alpha, const double *a, const MKL_INT *lda, const double *b, const MKL_INT *ldb,
  988. const double *beta, double *c, const MKL_INT *ldc) NOTHROW;
  989. void dsyrk(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  990. const double *alpha, const double *a, const MKL_INT *lda, const double *beta,
  991. double *c, const MKL_INT *ldc) NOTHROW;
  992. void dsyrk_batch(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  993. const double *alpha_array, const double **a_array, const MKL_INT *lda_array, const double *beta_array,
  994. double **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  995. void dsyrk_batch_strided(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  996. const double *alpha, const double *a, const MKL_INT *lda, const MKL_INT *stridea, const double *beta,
  997. double *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  998. void dtrmm(const char *side, const char *uplo, const char *transa, const char *diag,
  999. const MKL_INT *m, const MKL_INT *n, const double *alpha, const double *a, const MKL_INT *lda,
  1000. double *b, const MKL_INT *ldb) NOTHROW;
  1001. void dtrsm(const char *side, const char *uplo, const char *transa, const char *diag,
  1002. const MKL_INT *m, const MKL_INT *n, const double *alpha, const double *a, const MKL_INT *lda,
  1003. double *b, const MKL_INT *ldb) NOTHROW;
  1004. void dtrsm_batch(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  1005. const MKL_INT *m_array, const MKL_INT *n_array, const double *alpha_array, const double **a_array,
  1006. const MKL_INT *lda_array, double **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1007. void dtrsm_batch_strided(const char *side, const char *uplo, const char *transa, const char *diag,
  1008. const MKL_INT *m, const MKL_INT *n,
  1009. const double *alpha, const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  1010. double *b, const MKL_INT *ldb, const MKL_INT *strideb,
  1011. const MKL_INT *batch_size) NOTHROW;
  1012. void zgemm(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1013. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1014. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1015. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1016. void zgemm_batch(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  1017. const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array, const MKL_INT *lda_array, const MKL_Complex16 **b_array, const MKL_INT *ldb_array,
  1018. const MKL_Complex16 *beta_array, MKL_Complex16 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1019. void zgemm_batch_strided(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1020. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1021. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  1022. const MKL_Complex16 *beta, MKL_Complex16 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1023. const MKL_INT *batch_size) NOTHROW;
  1024. void dzgemm(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1025. const MKL_Complex16 *alpha, const double *a, const MKL_INT *lda,
  1026. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1027. MKL_Complex16 *c, const MKL_INT *ldc);
  1028. void zgemm3m(const char *transa, const char *transb, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1029. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1030. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1031. MKL_Complex16 *c, const MKL_INT *ldc);
  1032. void zgemm3m_batch(const char *transa_array, const char *transb_array, const MKL_INT *m_array, const MKL_INT *n_array, const MKL_INT *k_array,
  1033. const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array, const MKL_INT *lda_array, const MKL_Complex16 **b_array, const MKL_INT *ldb_array,
  1034. const MKL_Complex16 *beta_array, MKL_Complex16 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size);
  1035. void zgemmt(const char *uplo, const char *transa, const char *transb, const MKL_INT *n, const MKL_INT *k,
  1036. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1037. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1038. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1039. void zhemm(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  1040. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1041. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1042. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1043. void zher2k(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  1044. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1045. const MKL_Complex16 *b, const MKL_INT *ldb, const double *beta,
  1046. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1047. void zherk(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  1048. const double *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1049. const double *beta, MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1050. void zsymm(const char *side, const char *uplo, const MKL_INT *m, const MKL_INT *n,
  1051. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1052. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1053. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1054. void zsyr2k(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  1055. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1056. const MKL_Complex16 *b, const MKL_INT *ldb, const MKL_Complex16 *beta,
  1057. MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1058. void zsyrk(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  1059. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda,
  1060. const MKL_Complex16 *beta, MKL_Complex16 *c, const MKL_INT *ldc) NOTHROW;
  1061. void zsyrk_batch(const char *uplo_array, const char *trans_array, const MKL_INT *n_array, const MKL_INT *k_array,
  1062. const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array, const MKL_INT *lda_array,
  1063. const MKL_Complex16 *beta_array, MKL_Complex16 **c_array, const MKL_INT *ldc_array, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1064. void zsyrk_batch_strided(const char *uplo, const char *trans, const MKL_INT *n, const MKL_INT *k,
  1065. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea, const MKL_Complex16 *beta,
  1066. MKL_Complex16 *c, const MKL_INT *ldc, const MKL_INT *stridec, const MKL_INT *batch_size) NOTHROW;
  1067. void ztrmm(const char *side, const char *uplo, const char *transa, const char *diag,
  1068. const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  1069. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *ldb) NOTHROW;
  1070. void ztrsm(const char *side, const char *uplo, const char *transa, const char *diag,
  1071. const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  1072. const MKL_Complex16 *a, const MKL_INT *lda, MKL_Complex16 *b, const MKL_INT *ldb) NOTHROW;
  1073. void ztrsm_batch(const char *side_array, const char *uplo_array, const char *transa_array, const char *diag_array,
  1074. const MKL_INT *m_array, const MKL_INT *n_array, const MKL_Complex16 *alpha_array, const MKL_Complex16 **a_array,
  1075. const MKL_INT *lda_array, MKL_Complex16 **b_array, const MKL_INT *ldb, const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1076. void ztrsm_batch_strided(const char *side, const char *uplo, const char *transa, const char *diag,
  1077. const MKL_INT *m, const MKL_INT *n,
  1078. const MKL_Complex16 *alpha, const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1079. MKL_Complex16 *b, const MKL_INT *ldb, const MKL_INT *strideb,
  1080. const MKL_INT *batch_size) NOTHROW;
  1081. void gemm_s16s16s32(const char *transa, const char *transb, const char *offsetc,
  1082. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1083. const float *alpha, const MKL_INT16 *a, const MKL_INT *lda, const MKL_INT16 *ao,
  1084. const MKL_INT16 *b, const MKL_INT *ldb, const MKL_INT16 *bo,
  1085. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  1086. void gemm_s8u8s32(const char *transa, const char *transb, const char *offsetc,
  1087. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1088. const float *alpha, const MKL_INT8 *a, const MKL_INT *lda, const MKL_INT8 *ao,
  1089. const MKL_UINT8 *b, const MKL_INT *ldb, const MKL_INT8 *bo,
  1090. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  1091. size_t gemm_s8u8s32_pack_get_size (const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  1092. size_t gemm_s16s16s32_pack_get_size (const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  1093. void gemm_s8u8s32_pack (const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1094. const void *src, const MKL_INT *ld, void *dest);
  1095. void gemm_s16s16s32_pack (const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1096. const MKL_INT16 *src, const MKL_INT *ld, MKL_INT16 *dest);
  1097. void gemm_s8u8s32_compute (const char *transa, const char *transb, const char *offsetc,
  1098. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1099. const float *alpha,
  1100. const MKL_INT8 *a, const MKL_INT *lda, const MKL_INT8 *ao,
  1101. const MKL_UINT8 *b, const MKL_INT *ldb, const MKL_INT8 *bo,
  1102. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  1103. void gemm_s16s16s32_compute(const char *transa, const char *transb, const char *offsetc,
  1104. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1105. const float *alpha,
  1106. const MKL_INT16 *a, const MKL_INT *lda, const MKL_INT16 *ao,
  1107. const MKL_INT16 *b, const MKL_INT *ldb, const MKL_INT16 *bo,
  1108. const float *beta, MKL_INT32 *c, const MKL_INT *ldc, const MKL_INT32 *co);
  1109. void hgemm(const char *transa, const char *transb,
  1110. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1111. const MKL_F16 *alpha, const MKL_F16 *a, const MKL_INT *lda,
  1112. const MKL_F16 *b, const MKL_INT *ldb,
  1113. const MKL_F16 *beta, MKL_F16 *c, const MKL_INT *ldc);
  1114. size_t hgemm_pack_get_size (const char *identifier, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k);
  1115. void hgemm_pack (const char *identifier, const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1116. const MKL_F16 *alpha, const MKL_F16 *src, const MKL_INT *ld, MKL_F16 *dest);
  1117. void hgemm_compute(const char *transa, const char *transb,
  1118. const MKL_INT *m, const MKL_INT *n, const MKL_INT *k,
  1119. const MKL_F16 *a, const MKL_INT *lda,
  1120. const MKL_F16 *b, const MKL_INT *ldb,
  1121. const MKL_F16 *beta, MKL_F16 *c, const MKL_INT *ldc);
  1122. /*
  1123. * Jit routines
  1124. */
  1125. #ifndef mkl_jit_create_dgemm
  1126. #define mkl_jit_create_dgemm mkl_cblas_jit_create_dgemm
  1127. #endif
  1128. mkl_jit_status_t mkl_cblas_jit_create_dgemm(void** jitter, const MKL_LAYOUT layout, const MKL_TRANSPOSE transa, const MKL_TRANSPOSE transb,
  1129. const MKL_INT m, const MKL_INT n, const MKL_INT k,
  1130. const double alpha, const MKL_INT lda, const MKL_INT ldb,
  1131. const double beta, const MKL_INT ldc);
  1132. #ifndef mkl_jit_create_sgemm
  1133. #define mkl_jit_create_sgemm mkl_cblas_jit_create_sgemm
  1134. #endif
  1135. mkl_jit_status_t mkl_cblas_jit_create_sgemm(void** jitter, const MKL_LAYOUT layout, const MKL_TRANSPOSE transa, const MKL_TRANSPOSE transb,
  1136. const MKL_INT m, const MKL_INT n, const MKL_INT k,
  1137. const float alpha, const MKL_INT lda, const MKL_INT ldb,
  1138. const float beta, const MKL_INT ldc);
  1139. #ifndef mkl_jit_create_cgemm
  1140. #define mkl_jit_create_cgemm mkl_cblas_jit_create_cgemm
  1141. #endif
  1142. mkl_jit_status_t mkl_cblas_jit_create_cgemm(void** jitter, const MKL_LAYOUT layout, const MKL_TRANSPOSE transa, const MKL_TRANSPOSE transb,
  1143. const MKL_INT m, const MKL_INT n, const MKL_INT k,
  1144. const void* alpha, const MKL_INT lda, const MKL_INT ldb,
  1145. const void* beta, const MKL_INT ldc);
  1146. #ifndef mkl_jit_create_zgemm
  1147. #define mkl_jit_create_zgemm mkl_cblas_jit_create_zgemm
  1148. #endif
  1149. mkl_jit_status_t mkl_cblas_jit_create_zgemm(void** jitter, const MKL_LAYOUT layout, const MKL_TRANSPOSE transa, const MKL_TRANSPOSE transb,
  1150. const MKL_INT m, const MKL_INT n, const MKL_INT k,
  1151. const void* alpha, const MKL_INT lda, const MKL_INT ldb,
  1152. const void* beta, const MKL_INT ldc);
  1153. dgemm_jit_kernel_t mkl_jit_get_dgemm_ptr(const void* jitter);
  1154. sgemm_jit_kernel_t mkl_jit_get_sgemm_ptr(const void* jitter);
  1155. cgemm_jit_kernel_t mkl_jit_get_cgemm_ptr(const void* jitter);
  1156. zgemm_jit_kernel_t mkl_jit_get_zgemm_ptr(const void* jitter);
  1157. mkl_jit_status_t mkl_jit_destroy(void* jitter);
  1158. /* Level1 BLAS batch API */
  1159. void SAXPY_BATCH(const MKL_INT *n, const float *alpha,
  1160. const float **x, const MKL_INT *incx,
  1161. float **y, const MKL_INT *incy,
  1162. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1163. void saxpy_batch(const MKL_INT *n, const float *alpha,
  1164. const float **x, const MKL_INT *incx,
  1165. float **y, const MKL_INT *incy,
  1166. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1167. void DAXPY_BATCH(const MKL_INT *n, const double *alpha,
  1168. const double **x, const MKL_INT *incx,
  1169. double **y, const MKL_INT *incy,
  1170. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1171. void daxpy_batch(const MKL_INT *n, const double *alpha,
  1172. const double **x, const MKL_INT *incx,
  1173. double **y, const MKL_INT *incy,
  1174. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1175. void CAXPY_BATCH(const MKL_INT *n, const MKL_Complex8 *alpha,
  1176. const MKL_Complex8 **x, const MKL_INT *incx,
  1177. MKL_Complex8 **y, const MKL_INT *incy,
  1178. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1179. void caxpy_batch(const MKL_INT *n, const MKL_Complex8 *alpha,
  1180. const MKL_Complex8 **x, const MKL_INT *incx,
  1181. MKL_Complex8 **y, const MKL_INT *incy,
  1182. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1183. void ZAXPY_BATCH(const MKL_INT *n, const MKL_Complex16 *alpha,
  1184. const MKL_Complex16 **x, const MKL_INT *incx,
  1185. MKL_Complex16 **y, const MKL_INT *incy,
  1186. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1187. void zaxpy_batch(const MKL_INT *n, const MKL_Complex16 *alpha,
  1188. const MKL_Complex16 **x, const MKL_INT *incx,
  1189. MKL_Complex16 **y, const MKL_INT *incy,
  1190. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1191. void SCOPY_BATCH(const MKL_INT *n, const float **x, const MKL_INT *incx,
  1192. float **y, const MKL_INT *incy, const MKL_INT *group_count,
  1193. const MKL_INT *group_size) NOTHROW;
  1194. void scopy_batch(const MKL_INT *n, const float **x, const MKL_INT *incx,
  1195. float **y, const MKL_INT *incy, const MKL_INT *group_count,
  1196. const MKL_INT *group_size) NOTHROW;
  1197. void DCOPY_BATCH(const MKL_INT *n, const double **x, const MKL_INT *incx,
  1198. double **y, const MKL_INT *incy, const MKL_INT *group_count,
  1199. const MKL_INT *group_size) NOTHROW;
  1200. void dcopy_batch(const MKL_INT *n, const double **x, const MKL_INT *incx,
  1201. double **y, const MKL_INT *incy, const MKL_INT *group_count,
  1202. const MKL_INT *group_size) NOTHROW;
  1203. void CCOPY_BATCH(const MKL_INT *n, const MKL_Complex8 **x, const MKL_INT *incx,
  1204. MKL_Complex8 **y, const MKL_INT *incy, const MKL_INT *group_count,
  1205. const MKL_INT *group_size) NOTHROW;
  1206. void ccopy_batch(const MKL_INT *n, const MKL_Complex8 **x, const MKL_INT *incx,
  1207. MKL_Complex8 **y, const MKL_INT *incy, const MKL_INT *group_count,
  1208. const MKL_INT *group_size) NOTHROW;
  1209. void ZCOPY_BATCH(const MKL_INT *n, const MKL_Complex16 **x, const MKL_INT *incx,
  1210. MKL_Complex16 **y, const MKL_INT *incy, const MKL_INT *group_count,
  1211. const MKL_INT *group_size) NOTHROW;
  1212. void zcopy_batch(const MKL_INT *n, const MKL_Complex16 **x, const MKL_INT *incx,
  1213. MKL_Complex16 **y, const MKL_INT *incy, const MKL_INT *group_count,
  1214. const MKL_INT *group_size) NOTHROW;
  1215. void SAXPY_BATCH_STRIDED(const MKL_INT *n, const float *alpha,
  1216. const float *x, const MKL_INT *incx, const MKL_INT *stridex,
  1217. float *y, const MKL_INT *incy, const MKL_INT *stridey,
  1218. const MKL_INT *batch_size) NOTHROW;
  1219. void saxpy_batch_strided(const MKL_INT *n, const float *alpha,
  1220. const float *x, const MKL_INT *incx, const MKL_INT *stridex,
  1221. float *y, const MKL_INT *incy, const MKL_INT *stridey,
  1222. const MKL_INT *batch_size) NOTHROW;
  1223. void DAXPY_BATCH_STRIDED(const MKL_INT *n, const double *alpha,
  1224. const double *x, const MKL_INT *incx, const MKL_INT *stridex,
  1225. double *y, const MKL_INT *incy, const MKL_INT *stridey,
  1226. const MKL_INT *batch_size) NOTHROW;
  1227. void daxpy_batch_strided(const MKL_INT *n, const double *alpha,
  1228. const double *x, const MKL_INT *incx, const MKL_INT *stridex,
  1229. double *y, const MKL_INT *incy, const MKL_INT *stridey,
  1230. const MKL_INT *batch_size) NOTHROW;
  1231. void CAXPY_BATCH_STRIDED(const MKL_INT *n, const MKL_Complex8 *alpha,
  1232. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1233. MKL_Complex8 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1234. const MKL_INT *batch_size) NOTHROW;
  1235. void caxpy_batch_strided(const MKL_INT *n, const MKL_Complex8 *alpha,
  1236. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1237. MKL_Complex8 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1238. const MKL_INT *batch_size) NOTHROW;
  1239. void ZAXPY_BATCH_STRIDED(const MKL_INT *n, const MKL_Complex16 *alpha,
  1240. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1241. MKL_Complex16 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1242. const MKL_INT *batch_size) NOTHROW;
  1243. void zaxpy_batch_strided(const MKL_INT *n, const MKL_Complex16 *alpha,
  1244. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1245. MKL_Complex16 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1246. const MKL_INT *batch_size) NOTHROW;
  1247. void SCOPY_BATCH_STRIDED(const MKL_INT *n, const float* x, const MKL_INT *incx,
  1248. const MKL_INT* stridex, float*y, const MKL_INT* incy,
  1249. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1250. void scopy_batch_strided(const MKL_INT *n, const float* x, const MKL_INT *incx,
  1251. const MKL_INT* stridex, float*y, const MKL_INT* incy,
  1252. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1253. void DCOPY_BATCH_STRIDED(const MKL_INT *n, const double* x, const MKL_INT *incx,
  1254. const MKL_INT* stridex, double*y, const MKL_INT* incy,
  1255. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1256. void dcopy_batch_strided(const MKL_INT *n, const double* x, const MKL_INT *incx,
  1257. const MKL_INT* stridex, double*y, const MKL_INT* incy,
  1258. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1259. void CCOPY_BATCH_STRIDED(const MKL_INT *n, const MKL_Complex8* x, const MKL_INT *incx,
  1260. const MKL_INT* stridex, MKL_Complex8*y, const MKL_INT* incy,
  1261. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1262. void ccopy_batch_strided(const MKL_INT *n, const MKL_Complex8* x, const MKL_INT *incx,
  1263. const MKL_INT* stridex, MKL_Complex8*y, const MKL_INT* incy,
  1264. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1265. void ZCOPY_BATCH_STRIDED(const MKL_INT *n, const MKL_Complex16* x, const MKL_INT *incx,
  1266. const MKL_INT* stridex, MKL_Complex16*y, const MKL_INT* incy,
  1267. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1268. void zcopy_batch_strided(const MKL_INT *n, const MKL_Complex16* x, const MKL_INT *incx,
  1269. const MKL_INT* stridex, MKL_Complex16*y, const MKL_INT* incy,
  1270. const MKL_INT* stridey, const MKL_INT *batch_size) NOTHROW;
  1271. /* Level2 BLAS batch API */
  1272. void sgemv_batch(const char *trans, const MKL_INT *m, const MKL_INT *n, const float *alpha,
  1273. const float **a, const MKL_INT *lda, const float **x, const MKL_INT *incx,
  1274. const float *beta, float **y, const MKL_INT *incy,
  1275. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1276. void sgemv_batch_strided(const char *trans, const MKL_INT *m, const MKL_INT *n, const float *alpha,
  1277. const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  1278. const float *x, const MKL_INT *incx, const MKL_INT *stridex,
  1279. const float *beta, float *y, const MKL_INT *incy, const MKL_INT *stridey,
  1280. const MKL_INT *batch_size) NOTHROW;
  1281. void dgemv_batch(const char *trans, const MKL_INT *m, const MKL_INT *n, const double *alpha,
  1282. const double **a, const MKL_INT *lda, const double **x, const MKL_INT *incx,
  1283. const double *beta, double **y, const MKL_INT *incy,
  1284. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1285. void dgemv_batch_strided(const char *trans, const MKL_INT *m, const MKL_INT *n, const double *alpha,
  1286. const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  1287. const double *x, const MKL_INT *incx, const MKL_INT *stridex,
  1288. const double *beta, double *y, const MKL_INT *incy, const MKL_INT *stridey,
  1289. const MKL_INT *batch_size) NOTHROW;
  1290. void cgemv_batch(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  1291. const MKL_Complex8 **a, const MKL_INT *lda, const MKL_Complex8 **x, const MKL_INT *incx,
  1292. const MKL_Complex8 *beta, MKL_Complex8 **y, const MKL_INT *incy,
  1293. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1294. void cgemv_batch_strided(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  1295. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1296. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1297. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1298. const MKL_INT *batch_size) NOTHROW;
  1299. void zgemv_batch(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  1300. const MKL_Complex16 **a, const MKL_INT *lda, const MKL_Complex16 **x, const MKL_INT *incx,
  1301. const MKL_Complex16 *beta, MKL_Complex16 **y, const MKL_INT *incy,
  1302. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1303. void zgemv_batch_strided(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  1304. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1305. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1306. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1307. const MKL_INT *batch_size) NOTHROW;
  1308. void SGEMV_BATCH(const char *trans, const MKL_INT *m, const MKL_INT *n, const float *alpha,
  1309. const float **a, const MKL_INT *lda, const float **x, const MKL_INT *incx,
  1310. const float *beta, float **y, const MKL_INT *incy,
  1311. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1312. void SGEMV_BATCH_STRIDED(const char *trans, const MKL_INT *m, const MKL_INT *n, const float *alpha,
  1313. const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  1314. const float *x, const MKL_INT *incx, const MKL_INT *stridex,
  1315. const float *beta, float *y, const MKL_INT *incy, const MKL_INT *stridey,
  1316. const MKL_INT *batch_size) NOTHROW;
  1317. void DGEMV_BATCH(const char *trans, const MKL_INT *m, const MKL_INT *n, const double *alpha,
  1318. const double **a, const MKL_INT *lda, const double **x, const MKL_INT *incx,
  1319. const double *beta, double **y, const MKL_INT *incy,
  1320. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1321. void DGEMV_BATCH_STRIDED(const char *trans, const MKL_INT *m, const MKL_INT *n, const double *alpha,
  1322. const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  1323. const double *x, const MKL_INT *incx, const MKL_INT *stridex,
  1324. const double *beta, double *y, const MKL_INT *incy, const MKL_INT *stridey,
  1325. const MKL_INT *batch_size) NOTHROW;
  1326. void CGEMV_BATCH(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  1327. const MKL_Complex8 **a, const MKL_INT *lda, const MKL_Complex8 **x, const MKL_INT *incx,
  1328. const MKL_Complex8 *beta, MKL_Complex8 **y, const MKL_INT *incy,
  1329. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1330. void CGEMV_BATCH_STRIDED(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex8 *alpha,
  1331. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1332. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1333. const MKL_Complex8 *beta, MKL_Complex8 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1334. const MKL_INT *batch_size) NOTHROW;
  1335. void ZGEMV_BATCH(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  1336. const MKL_Complex16 **a, const MKL_INT *lda, const MKL_Complex16 **x, const MKL_INT *incx,
  1337. const MKL_Complex16 *beta, MKL_Complex16 **y, const MKL_INT *incy,
  1338. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1339. void ZGEMV_BATCH_STRIDED(const char *trans, const MKL_INT *m, const MKL_INT *n, const MKL_Complex16 *alpha,
  1340. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1341. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1342. const MKL_Complex16 *beta, MKL_Complex16 *y, const MKL_INT *incy, const MKL_INT *stridey,
  1343. const MKL_INT *batch_size) NOTHROW;
  1344. void sdgmm_batch(const char *side, const MKL_INT *m, const MKL_INT *n,
  1345. const float **a, const MKL_INT *lda,
  1346. const float **x, const MKL_INT *incx,
  1347. float **c, const MKL_INT *ldc,
  1348. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1349. void sdgmm_batch_strided(const char *side, const MKL_INT *m, const MKL_INT *n,
  1350. const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  1351. const float *x, const MKL_INT *incx, const MKL_INT *stridex,
  1352. float *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1353. const MKL_INT *batch_size) NOTHROW;
  1354. void ddgmm_batch(const char *side, const MKL_INT *m, const MKL_INT *n,
  1355. const double **a, const MKL_INT *lda,
  1356. const double **x, const MKL_INT *incx,
  1357. double **c, const MKL_INT *ldc,
  1358. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1359. void ddgmm_batch_strided(const char *side, const MKL_INT *m, const MKL_INT *n,
  1360. const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  1361. const double *x, const MKL_INT *incx, const MKL_INT *stridex,
  1362. double *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1363. const MKL_INT *batch_size) NOTHROW;
  1364. void cdgmm_batch(const char *side, const MKL_INT *m, const MKL_INT *n,
  1365. const MKL_Complex8 **a, const MKL_INT *lda,
  1366. const MKL_Complex8 **x, const MKL_INT *incx,
  1367. MKL_Complex8 **c, const MKL_INT *ldc,
  1368. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1369. void cdgmm_batch_strided(const char *side, const MKL_INT *m, const MKL_INT *n,
  1370. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1371. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1372. MKL_Complex8 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1373. const MKL_INT *batch_size) NOTHROW;
  1374. void zdgmm_batch(const char *side, const MKL_INT *m, const MKL_INT *n,
  1375. const MKL_Complex16 **a, const MKL_INT *lda,
  1376. const MKL_Complex16 **x, const MKL_INT *incx,
  1377. MKL_Complex16 **c, const MKL_INT *ldc,
  1378. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1379. void zdgmm_batch_strided(const char *side, const MKL_INT *m, const MKL_INT *n,
  1380. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1381. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1382. MKL_Complex16 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1383. const MKL_INT *batch_size) NOTHROW;
  1384. void SDGMM_BATCH(const char *side, const MKL_INT *m, const MKL_INT *n,
  1385. const float **a, const MKL_INT *lda,
  1386. const float **x, const MKL_INT *incx,
  1387. float **c, const MKL_INT *ldc,
  1388. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1389. void SDGMM_BATCH_STRIDED(const char *side, const MKL_INT *m, const MKL_INT *n,
  1390. const float *a, const MKL_INT *lda, const MKL_INT *stridea,
  1391. const float *x, const MKL_INT *incx, const MKL_INT *stridex,
  1392. float *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1393. const MKL_INT *batch_size) NOTHROW;
  1394. void DDGMM_BATCH(const char *side, const MKL_INT *m, const MKL_INT *n,
  1395. const double **a, const MKL_INT *lda,
  1396. const double **x, const MKL_INT *incx,
  1397. double **c, const MKL_INT *ldc,
  1398. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1399. void DDGMM_BATCH_STRIDED(const char *side, const MKL_INT *m, const MKL_INT *n,
  1400. const double *a, const MKL_INT *lda, const MKL_INT *stridea,
  1401. const double *x, const MKL_INT *incx, const MKL_INT *stridex,
  1402. double *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1403. const MKL_INT *batch_size) NOTHROW;
  1404. void CDGMM_BATCH(const char *side, const MKL_INT *m, const MKL_INT *n,
  1405. const MKL_Complex8 **a, const MKL_INT *lda,
  1406. const MKL_Complex8 **x, const MKL_INT *incx,
  1407. MKL_Complex8 **c, const MKL_INT *ldc,
  1408. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1409. void CDGMM_BATCH_STRIDED(const char *side, const MKL_INT *m, const MKL_INT *n,
  1410. const MKL_Complex8 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1411. const MKL_Complex8 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1412. MKL_Complex8 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1413. const MKL_INT *batch_size) NOTHROW;
  1414. void ZDGMM_BATCH(const char *side, const MKL_INT *m, const MKL_INT *n,
  1415. const MKL_Complex16 **a, const MKL_INT *lda,
  1416. const MKL_Complex16 **x, const MKL_INT *incx,
  1417. MKL_Complex16 **c, const MKL_INT *ldc,
  1418. const MKL_INT *group_count, const MKL_INT *group_size) NOTHROW;
  1419. void ZDGMM_BATCH_STRIDED(const char *side, const MKL_INT *m, const MKL_INT *n,
  1420. const MKL_Complex16 *a, const MKL_INT *lda, const MKL_INT *stridea,
  1421. const MKL_Complex16 *x, const MKL_INT *incx, const MKL_INT *stridex,
  1422. MKL_Complex16 *c, const MKL_INT *ldc, const MKL_INT *stridec,
  1423. const MKL_INT *batch_size) NOTHROW;
  1424. #ifdef __cplusplus
  1425. }
  1426. #endif /* __cplusplus */
  1427. #include "mkl_blas_64.h"
  1428. #endif /* _MKL_BLAS_H_ */