You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

common_interface.h 50 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813
  1. /*********************************************************************/
  2. /* Copyright 2009, 2010 The University of Texas at Austin. */
  3. /* Copyright 2025 The OpenBLAS Project. */
  4. /* All rights reserved. */
  5. /* */
  6. /* Redistribution and use in source and binary forms, with or */
  7. /* without modification, are permitted provided that the following */
  8. /* conditions are met: */
  9. /* */
  10. /* 1. Redistributions of source code must retain the above */
  11. /* copyright notice, this list of conditions and the following */
  12. /* disclaimer. */
  13. /* */
  14. /* 2. Redistributions in binary form must reproduce the above */
  15. /* copyright notice, this list of conditions and the following */
  16. /* disclaimer in the documentation and/or other materials */
  17. /* provided with the distribution. */
  18. /* */
  19. /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
  20. /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
  21. /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
  22. /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
  23. /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
  24. /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
  25. /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
  26. /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
  27. /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
  28. /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
  29. /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
  30. /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
  31. /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
  32. /* POSSIBILITY OF SUCH DAMAGE. */
  33. /* */
  34. /* The views and conclusions contained in the software and */
  35. /* documentation are those of the authors and should not be */
  36. /* interpreted as representing official policies, either expressed */
  37. /* or implied, of The University of Texas at Austin. */
  38. /*********************************************************************/
  39. #ifndef ASSEMBLER
  40. #ifdef __cplusplus
  41. extern "C" {
  42. /* Assume C declarations for C++ */
  43. #endif /* __cplusplus */
  44. int BLASFUNC(xerbla)(char *, blasint *info, blasint);
  45. void openblas_set_num_threads_(int *);
  46. /*Set the threading backend to a custom callback.*/
  47. typedef void (*openblas_dojob_callback)(int thread_num, void *jobdata, int dojob_data);
  48. typedef void (*openblas_threads_callback)(int sync, openblas_dojob_callback dojob, int numjobs, size_t jobdata_elsize, void *jobdata, int dojob_data);
  49. extern openblas_threads_callback openblas_threads_callback_;
  50. FLOATRET BLASFUNC(sdot) (blasint *, float *, blasint *, float *, blasint *);
  51. FLOATRET BLASFUNC(sdsdot)(blasint *, float *, float *, blasint *, float *, blasint *);
  52. double BLASFUNC(dsdot) (blasint *, float *, blasint *, float *, blasint *);
  53. double BLASFUNC(ddot) (blasint *, double *, blasint *, double *, blasint *);
  54. xdouble BLASFUNC(qdot) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  55. void BLASFUNC(bscal) (blasint *, bfloat16 *, bfloat16 *, blasint *);
  56. float BLASFUNC(sbdot) (blasint *, bfloat16 *, blasint *, bfloat16 *, blasint *);
  57. void BLASFUNC(sbstobf16) (blasint *, float *, blasint *, bfloat16 *, blasint *);
  58. void BLASFUNC(sbdtobf16) (blasint *, double *, blasint *, bfloat16 *, blasint *);
  59. void BLASFUNC(sbf16tos) (blasint *, bfloat16 *, blasint *, float *, blasint *);
  60. void BLASFUNC(dbf16tod) (blasint *, bfloat16 *, blasint *, double *, blasint *);
  61. #ifdef RETURN_BY_STRUCT
  62. typedef struct {
  63. float r, i;
  64. } myccomplex_t;
  65. typedef struct {
  66. double r, i;
  67. } myzcomplex_t;
  68. typedef struct {
  69. xdouble r, i;
  70. } myxcomplex_t;
  71. myccomplex_t BLASFUNC(cdotu) (blasint *, float *, blasint *, float *, blasint *);
  72. myccomplex_t BLASFUNC(cdotc) (blasint *, float *, blasint *, float *, blasint *);
  73. myzcomplex_t BLASFUNC(zdotu) (blasint *, double *, blasint *, double *, blasint *);
  74. myzcomplex_t BLASFUNC(zdotc) (blasint *, double *, blasint *, double *, blasint *);
  75. myxcomplex_t BLASFUNC(xdotu) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  76. myxcomplex_t BLASFUNC(xdotc) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  77. #elif defined RETURN_BY_STACK
  78. void BLASFUNC(cdotu) (openblas_complex_float *, blasint *, float * , blasint *, float *, blasint *);
  79. void BLASFUNC(cdotc) (openblas_complex_float *, blasint *, float *, blasint *, float *, blasint *);
  80. void BLASFUNC(zdotu) (openblas_complex_double *, blasint *, double *, blasint *, double *, blasint *);
  81. void BLASFUNC(zdotc) (openblas_complex_double *, blasint *, double *, blasint *, double *, blasint *);
  82. void BLASFUNC(xdotu) (openblas_complex_xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  83. void BLASFUNC(xdotc) (openblas_complex_xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  84. #else
  85. openblas_complex_float BLASFUNC(cdotu) (blasint *, float *, blasint *, float *, blasint *);
  86. openblas_complex_float BLASFUNC(cdotc) (blasint *, float *, blasint *, float *, blasint *);
  87. openblas_complex_double BLASFUNC(zdotu) (blasint *, double *, blasint *, double *, blasint *);
  88. openblas_complex_double BLASFUNC(zdotc) (blasint *, double *, blasint *, double *, blasint *);
  89. openblas_complex_xdouble BLASFUNC(xdotu) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  90. openblas_complex_xdouble BLASFUNC(xdotc) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  91. #endif
  92. void BLASFUNC(saxpy) (blasint *, float *, float *, blasint *, float *, blasint *);
  93. void BLASFUNC(daxpy) (blasint *, double *, double *, blasint *, double *, blasint *);
  94. void BLASFUNC(qaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  95. void BLASFUNC(caxpy) (blasint *, float *, float *, blasint *, float *, blasint *);
  96. void BLASFUNC(zaxpy) (blasint *, double *, double *, blasint *, double *, blasint *);
  97. void BLASFUNC(xaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  98. void BLASFUNC(caxpyc)(blasint *, float *, float *, blasint *, float *, blasint *);
  99. void BLASFUNC(zaxpyc)(blasint *, double *, double *, blasint *, double *, blasint *);
  100. void BLASFUNC(xaxpyc)(blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  101. void BLASFUNC(scopy) (blasint *, float *, blasint *, float *, blasint *);
  102. void BLASFUNC(dcopy) (blasint *, double *, blasint *, double *, blasint *);
  103. void BLASFUNC(qcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  104. void BLASFUNC(ccopy) (blasint *, float *, blasint *, float *, blasint *);
  105. void BLASFUNC(zcopy) (blasint *, double *, blasint *, double *, blasint *);
  106. void BLASFUNC(xcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  107. void BLASFUNC(sswap) (blasint *, float *, blasint *, float *, blasint *);
  108. void BLASFUNC(dswap) (blasint *, double *, blasint *, double *, blasint *);
  109. void BLASFUNC(qswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  110. void BLASFUNC(cswap) (blasint *, float *, blasint *, float *, blasint *);
  111. void BLASFUNC(zswap) (blasint *, double *, blasint *, double *, blasint *);
  112. void BLASFUNC(xswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
  113. FLOATRET BLASFUNC(sasum) (blasint *, float *, blasint *);
  114. FLOATRET BLASFUNC(scasum)(blasint *, float *, blasint *);
  115. double BLASFUNC(dasum) (blasint *, double *, blasint *);
  116. xdouble BLASFUNC(qasum) (blasint *, xdouble *, blasint *);
  117. double BLASFUNC(dzasum)(blasint *, double *, blasint *);
  118. xdouble BLASFUNC(qxasum)(blasint *, xdouble *, blasint *);
  119. FLOATRET BLASFUNC(ssum) (blasint *, float *, blasint *);
  120. FLOATRET BLASFUNC(scsum)(blasint *, float *, blasint *);
  121. double BLASFUNC(dsum) (blasint *, double *, blasint *);
  122. xdouble BLASFUNC(qsum) (blasint *, xdouble *, blasint *);
  123. double BLASFUNC(dzsum)(blasint *, double *, blasint *);
  124. xdouble BLASFUNC(qxsum)(blasint *, xdouble *, blasint *);
  125. blasint BLASFUNC(isamax)(blasint *, float *, blasint *);
  126. blasint BLASFUNC(idamax)(blasint *, double *, blasint *);
  127. blasint BLASFUNC(iqamax)(blasint *, xdouble *, blasint *);
  128. blasint BLASFUNC(icamax)(blasint *, float *, blasint *);
  129. blasint BLASFUNC(izamax)(blasint *, double *, blasint *);
  130. blasint BLASFUNC(ixamax)(blasint *, xdouble *, blasint *);
  131. blasint BLASFUNC(ismax) (blasint *, float *, blasint *);
  132. blasint BLASFUNC(idmax) (blasint *, double *, blasint *);
  133. blasint BLASFUNC(iqmax) (blasint *, xdouble *, blasint *);
  134. blasint BLASFUNC(icmax) (blasint *, float *, blasint *);
  135. blasint BLASFUNC(izmax) (blasint *, double *, blasint *);
  136. blasint BLASFUNC(ixmax) (blasint *, xdouble *, blasint *);
  137. blasint BLASFUNC(isamin)(blasint *, float *, blasint *);
  138. blasint BLASFUNC(idamin)(blasint *, double *, blasint *);
  139. blasint BLASFUNC(iqamin)(blasint *, xdouble *, blasint *);
  140. blasint BLASFUNC(icamin)(blasint *, float *, blasint *);
  141. blasint BLASFUNC(izamin)(blasint *, double *, blasint *);
  142. blasint BLASFUNC(ixamin)(blasint *, xdouble *, blasint *);
  143. blasint BLASFUNC(ismin)(blasint *, float *, blasint *);
  144. blasint BLASFUNC(idmin)(blasint *, double *, blasint *);
  145. blasint BLASFUNC(iqmin)(blasint *, xdouble *, blasint *);
  146. blasint BLASFUNC(icmin)(blasint *, float *, blasint *);
  147. blasint BLASFUNC(izmin)(blasint *, double *, blasint *);
  148. blasint BLASFUNC(ixmin)(blasint *, xdouble *, blasint *);
  149. FLOATRET BLASFUNC(samax) (blasint *, float *, blasint *);
  150. double BLASFUNC(damax) (blasint *, double *, blasint *);
  151. xdouble BLASFUNC(qamax) (blasint *, xdouble *, blasint *);
  152. FLOATRET BLASFUNC(scamax)(blasint *, float *, blasint *);
  153. double BLASFUNC(dzamax)(blasint *, double *, blasint *);
  154. xdouble BLASFUNC(qxamax)(blasint *, xdouble *, blasint *);
  155. FLOATRET BLASFUNC(samin) (blasint *, float *, blasint *);
  156. double BLASFUNC(damin) (blasint *, double *, blasint *);
  157. xdouble BLASFUNC(qamin) (blasint *, xdouble *, blasint *);
  158. FLOATRET BLASFUNC(scamin)(blasint *, float *, blasint *);
  159. double BLASFUNC(dzamin)(blasint *, double *, blasint *);
  160. xdouble BLASFUNC(qxamin)(blasint *, xdouble *, blasint *);
  161. FLOATRET BLASFUNC(smax) (blasint *, float *, blasint *);
  162. double BLASFUNC(dmax) (blasint *, double *, blasint *);
  163. xdouble BLASFUNC(qmax) (blasint *, xdouble *, blasint *);
  164. FLOATRET BLASFUNC(scmax) (blasint *, float *, blasint *);
  165. double BLASFUNC(dzmax) (blasint *, double *, blasint *);
  166. xdouble BLASFUNC(qxmax) (blasint *, xdouble *, blasint *);
  167. FLOATRET BLASFUNC(smin) (blasint *, float *, blasint *);
  168. double BLASFUNC(dmin) (blasint *, double *, blasint *);
  169. xdouble BLASFUNC(qmin) (blasint *, xdouble *, blasint *);
  170. FLOATRET BLASFUNC(scmin) (blasint *, float *, blasint *);
  171. double BLASFUNC(dzmin) (blasint *, double *, blasint *);
  172. xdouble BLASFUNC(qxmin) (blasint *, xdouble *, blasint *);
  173. void BLASFUNC(sscal) (blasint *, float *, float *, blasint *);
  174. void BLASFUNC(dscal) (blasint *, double *, double *, blasint *);
  175. void BLASFUNC(qscal) (blasint *, xdouble *, xdouble *, blasint *);
  176. void BLASFUNC(cscal) (blasint *, float *, float *, blasint *);
  177. void BLASFUNC(zscal) (blasint *, double *, double *, blasint *);
  178. void BLASFUNC(xscal) (blasint *, xdouble *, xdouble *, blasint *);
  179. void BLASFUNC(csscal)(blasint *, float *, float *, blasint *);
  180. void BLASFUNC(zdscal)(blasint *, double *, double *, blasint *);
  181. void BLASFUNC(xqscal)(blasint *, xdouble *, xdouble *, blasint *);
  182. FLOATRET BLASFUNC(snrm2) (blasint *, float *, blasint *);
  183. FLOATRET BLASFUNC(scnrm2)(blasint *, float *, blasint *);
  184. double BLASFUNC(dnrm2) (blasint *, double *, blasint *);
  185. xdouble BLASFUNC(qnrm2) (blasint *, xdouble *, blasint *);
  186. double BLASFUNC(dznrm2)(blasint *, double *, blasint *);
  187. xdouble BLASFUNC(qxnrm2)(blasint *, xdouble *, blasint *);
  188. void BLASFUNC(srot) (blasint *, float *, blasint *, float *, blasint *, float *, float *);
  189. void BLASFUNC(drot) (blasint *, double *, blasint *, double *, blasint *, double *, double *);
  190. void BLASFUNC(qrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *);
  191. void BLASFUNC(csrot) (blasint *, float *, blasint *, float *, blasint *, float *, float *);
  192. void BLASFUNC(zdrot) (blasint *, double *, blasint *, double *, blasint *, double *, double *);
  193. void BLASFUNC(xqrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *);
  194. void BLASFUNC(srotg) (float *, float *, float *, float *);
  195. void BLASFUNC(drotg) (double *, double *, double *, double *);
  196. void BLASFUNC(qrotg) (xdouble *, xdouble *, xdouble *, xdouble *);
  197. void BLASFUNC(crotg) (float *, float *, float *, float *);
  198. void BLASFUNC(zrotg) (double *, double *, double *, double *);
  199. void BLASFUNC(xrotg) (xdouble *, xdouble *, xdouble *, xdouble *);
  200. void BLASFUNC(srotmg)(float *, float *, float *, float *, float *);
  201. void BLASFUNC(drotmg)(double *, double *, double *, double *, double *);
  202. void BLASFUNC(srotm) (blasint *, float *, blasint *, float *, blasint *, float *);
  203. void BLASFUNC(drotm) (blasint *, double *, blasint *, double *, blasint *, double *);
  204. void BLASFUNC(qrotm) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *);
  205. /* Level 2 routines */
  206. void BLASFUNC(sger)(blasint *, blasint *, float *, float *, blasint *,
  207. float *, blasint *, float *, blasint *);
  208. void BLASFUNC(dger)(blasint *, blasint *, double *, double *, blasint *,
  209. double *, blasint *, double *, blasint *);
  210. void BLASFUNC(qger)(blasint *, blasint *, xdouble *, xdouble *, blasint *,
  211. xdouble *, blasint *, xdouble *, blasint *);
  212. void BLASFUNC(cgeru)(blasint *, blasint *, float *, float *, blasint *,
  213. float *, blasint *, float *, blasint *);
  214. void BLASFUNC(cgerc)(blasint *, blasint *, float *, float *, blasint *,
  215. float *, blasint *, float *, blasint *);
  216. void BLASFUNC(zgeru)(blasint *, blasint *, double *, double *, blasint *,
  217. double *, blasint *, double *, blasint *);
  218. void BLASFUNC(zgerc)(blasint *, blasint *, double *, double *, blasint *,
  219. double *, blasint *, double *, blasint *);
  220. void BLASFUNC(xgeru)(blasint *, blasint *, xdouble *, xdouble *, blasint *,
  221. xdouble *, blasint *, xdouble *, blasint *);
  222. void BLASFUNC(xgerc)(blasint *, blasint *, xdouble *, xdouble *, blasint *,
  223. xdouble *, blasint *, xdouble *, blasint *);
  224. void BLASFUNC(bgemv)(char *, blasint *, blasint *, bfloat16 *, bfloat16 *, blasint *,
  225. bfloat16 *, blasint *, bfloat16 *, bfloat16 *, blasint *);
  226. void BLASFUNC(sbgemv)(char *, blasint *, blasint *, float *, bfloat16 *, blasint *,
  227. bfloat16 *, blasint *, float *, float *, blasint *);
  228. void BLASFUNC(sgemv)(char *, blasint *, blasint *, float *, float *, blasint *,
  229. float *, blasint *, float *, float *, blasint *);
  230. void BLASFUNC(dgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
  231. double *, blasint *, double *, double *, blasint *);
  232. void BLASFUNC(qgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  233. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  234. void BLASFUNC(cgemv)(char *, blasint *, blasint *, float *, float *, blasint *,
  235. float *, blasint *, float *, float *, blasint *);
  236. void BLASFUNC(zgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
  237. double *, blasint *, double *, double *, blasint *);
  238. void BLASFUNC(xgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  239. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  240. void BLASFUNC(strsv) (char *, char *, char *, blasint *, float *, blasint *,
  241. float *, blasint *);
  242. void BLASFUNC(dtrsv) (char *, char *, char *, blasint *, double *, blasint *,
  243. double *, blasint *);
  244. void BLASFUNC(qtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
  245. xdouble *, blasint *);
  246. void BLASFUNC(ctrsv) (char *, char *, char *, blasint *, float *, blasint *,
  247. float *, blasint *);
  248. void BLASFUNC(ztrsv) (char *, char *, char *, blasint *, double *, blasint *,
  249. double *, blasint *);
  250. void BLASFUNC(xtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
  251. xdouble *, blasint *);
  252. void BLASFUNC(strmv) (char *, char *, char *, blasint *, float *, blasint *,
  253. float *, blasint *);
  254. void BLASFUNC(dtrmv) (char *, char *, char *, blasint *, double *, blasint *,
  255. double *, blasint *);
  256. void BLASFUNC(qtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
  257. xdouble *, blasint *);
  258. void BLASFUNC(ctrmv) (char *, char *, char *, blasint *, float *, blasint *,
  259. float *, blasint *);
  260. void BLASFUNC(ztrmv) (char *, char *, char *, blasint *, double *, blasint *,
  261. double *, blasint *);
  262. void BLASFUNC(xtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
  263. xdouble *, blasint *);
  264. void BLASFUNC(stpsv) (char *, char *, char *, blasint *, float *, float *, blasint *);
  265. void BLASFUNC(dtpsv) (char *, char *, char *, blasint *, double *, double *, blasint *);
  266. void BLASFUNC(qtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
  267. void BLASFUNC(ctpsv) (char *, char *, char *, blasint *, float *, float *, blasint *);
  268. void BLASFUNC(ztpsv) (char *, char *, char *, blasint *, double *, double *, blasint *);
  269. void BLASFUNC(xtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
  270. void BLASFUNC(stpmv) (char *, char *, char *, blasint *, float *, float *, blasint *);
  271. void BLASFUNC(dtpmv) (char *, char *, char *, blasint *, double *, double *, blasint *);
  272. void BLASFUNC(qtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
  273. void BLASFUNC(ctpmv) (char *, char *, char *, blasint *, float *, float *, blasint *);
  274. void BLASFUNC(ztpmv) (char *, char *, char *, blasint *, double *, double *, blasint *);
  275. void BLASFUNC(xtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
  276. void BLASFUNC(stbmv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *);
  277. void BLASFUNC(dtbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
  278. void BLASFUNC(qtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  279. void BLASFUNC(ctbmv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *);
  280. void BLASFUNC(ztbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
  281. void BLASFUNC(xtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  282. void BLASFUNC(stbsv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *);
  283. void BLASFUNC(dtbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
  284. void BLASFUNC(qtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  285. void BLASFUNC(ctbsv) (char *, char *, char *, blasint *, blasint *, float *, blasint *, float *, blasint *);
  286. void BLASFUNC(ztbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
  287. void BLASFUNC(xtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  288. void BLASFUNC(ssymv) (char *, blasint *, float *, float *, blasint *,
  289. float *, blasint *, float *, float *, blasint *);
  290. void BLASFUNC(dsymv) (char *, blasint *, double *, double *, blasint *,
  291. double *, blasint *, double *, double *, blasint *);
  292. void BLASFUNC(qsymv) (char *, blasint *, xdouble *, xdouble *, blasint *,
  293. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  294. void BLASFUNC(csymv) (char *, blasint *, float *, float *, blasint *,
  295. float *, blasint *, float *, float *, blasint *);
  296. void BLASFUNC(zsymv) (char *, blasint *, double *, double *, blasint *,
  297. double *, blasint *, double *, double *, blasint *);
  298. void BLASFUNC(xsymv) (char *, blasint *, xdouble *, xdouble *, blasint *,
  299. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  300. void BLASFUNC(sspmv) (char *, blasint *, float *, float *,
  301. float *, blasint *, float *, float *, blasint *);
  302. void BLASFUNC(dspmv) (char *, blasint *, double *, double *,
  303. double *, blasint *, double *, double *, blasint *);
  304. void BLASFUNC(qspmv) (char *, blasint *, xdouble *, xdouble *,
  305. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  306. void BLASFUNC(cspmv) (char *, blasint *, float *, float *,
  307. float *, blasint *, float *, float *, blasint *);
  308. void BLASFUNC(zspmv) (char *, blasint *, double *, double *,
  309. double *, blasint *, double *, double *, blasint *);
  310. void BLASFUNC(xspmv) (char *, blasint *, xdouble *, xdouble *,
  311. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  312. void BLASFUNC(ssyr) (char *, blasint *, float *, float *, blasint *,
  313. float *, blasint *);
  314. void BLASFUNC(dsyr) (char *, blasint *, double *, double *, blasint *,
  315. double *, blasint *);
  316. void BLASFUNC(qsyr) (char *, blasint *, xdouble *, xdouble *, blasint *,
  317. xdouble *, blasint *);
  318. void BLASFUNC(csyr) (char *, blasint *, float *, float *, blasint *,
  319. float *, blasint *);
  320. void BLASFUNC(zsyr) (char *, blasint *, double *, double *, blasint *,
  321. double *, blasint *);
  322. void BLASFUNC(xsyr) (char *, blasint *, xdouble *, xdouble *, blasint *,
  323. xdouble *, blasint *);
  324. void BLASFUNC(ssyr2) (char *, blasint *, float *,
  325. float *, blasint *, float *, blasint *, float *, blasint *);
  326. void BLASFUNC(dsyr2) (char *, blasint *, double *,
  327. double *, blasint *, double *, blasint *, double *, blasint *);
  328. void BLASFUNC(qsyr2) (char *, blasint *, xdouble *,
  329. xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  330. void BLASFUNC(csyr2) (char *, blasint *, float *,
  331. float *, blasint *, float *, blasint *, float *, blasint *);
  332. void BLASFUNC(zsyr2) (char *, blasint *, double *,
  333. double *, blasint *, double *, blasint *, double *, blasint *);
  334. void BLASFUNC(xsyr2) (char *, blasint *, xdouble *,
  335. xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  336. void BLASFUNC(sspr) (char *, blasint *, float *, float *, blasint *,
  337. float *);
  338. void BLASFUNC(dspr) (char *, blasint *, double *, double *, blasint *,
  339. double *);
  340. void BLASFUNC(qspr) (char *, blasint *, xdouble *, xdouble *, blasint *,
  341. xdouble *);
  342. void BLASFUNC(cspr) (char *, blasint *, float *, float *, blasint *,
  343. float *);
  344. void BLASFUNC(zspr) (char *, blasint *, double *, double *, blasint *,
  345. double *);
  346. void BLASFUNC(xspr) (char *, blasint *, xdouble *, xdouble *, blasint *,
  347. xdouble *);
  348. void BLASFUNC(sspr2) (char *, blasint *, float *,
  349. float *, blasint *, float *, blasint *, float *);
  350. void BLASFUNC(dspr2) (char *, blasint *, double *,
  351. double *, blasint *, double *, blasint *, double *);
  352. void BLASFUNC(qspr2) (char *, blasint *, xdouble *,
  353. xdouble *, blasint *, xdouble *, blasint *, xdouble *);
  354. void BLASFUNC(cspr2) (char *, blasint *, float *,
  355. float *, blasint *, float *, blasint *, float *);
  356. void BLASFUNC(zspr2) (char *, blasint *, double *,
  357. double *, blasint *, double *, blasint *, double *);
  358. void BLASFUNC(xspr2) (char *, blasint *, xdouble *,
  359. xdouble *, blasint *, xdouble *, blasint *, xdouble *);
  360. void BLASFUNC(cher) (char *, blasint *, float *, float *, blasint *,
  361. float *, blasint *);
  362. void BLASFUNC(zher) (char *, blasint *, double *, double *, blasint *,
  363. double *, blasint *);
  364. void BLASFUNC(xher) (char *, blasint *, xdouble *, xdouble *, blasint *,
  365. xdouble *, blasint *);
  366. void BLASFUNC(chpr) (char *, blasint *, float *, float *, blasint *, float *);
  367. void BLASFUNC(zhpr) (char *, blasint *, double *, double *, blasint *, double *);
  368. void BLASFUNC(xhpr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *);
  369. void BLASFUNC(cher2) (char *, blasint *, float *,
  370. float *, blasint *, float *, blasint *, float *, blasint *);
  371. void BLASFUNC(zher2) (char *, blasint *, double *,
  372. double *, blasint *, double *, blasint *, double *, blasint *);
  373. void BLASFUNC(xher2) (char *, blasint *, xdouble *,
  374. xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
  375. void BLASFUNC(chpr2) (char *, blasint *, float *,
  376. float *, blasint *, float *, blasint *, float *);
  377. void BLASFUNC(zhpr2) (char *, blasint *, double *,
  378. double *, blasint *, double *, blasint *, double *);
  379. void BLASFUNC(xhpr2) (char *, blasint *, xdouble *,
  380. xdouble *, blasint *, xdouble *, blasint *, xdouble *);
  381. void BLASFUNC(chemv) (char *, blasint *, float *, float *, blasint *,
  382. float *, blasint *, float *, float *, blasint *);
  383. void BLASFUNC(zhemv) (char *, blasint *, double *, double *, blasint *,
  384. double *, blasint *, double *, double *, blasint *);
  385. void BLASFUNC(xhemv) (char *, blasint *, xdouble *, xdouble *, blasint *,
  386. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  387. void BLASFUNC(chpmv) (char *, blasint *, float *, float *,
  388. float *, blasint *, float *, float *, blasint *);
  389. void BLASFUNC(zhpmv) (char *, blasint *, double *, double *,
  390. double *, blasint *, double *, double *, blasint *);
  391. void BLASFUNC(xhpmv) (char *, blasint *, xdouble *, xdouble *,
  392. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  393. int BLASFUNC(snorm)(char *, blasint *, blasint *, float *, blasint *);
  394. int BLASFUNC(dnorm)(char *, blasint *, blasint *, double *, blasint *);
  395. int BLASFUNC(cnorm)(char *, blasint *, blasint *, float *, blasint *);
  396. int BLASFUNC(znorm)(char *, blasint *, blasint *, double *, blasint *);
  397. void BLASFUNC(sgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *,
  398. float *, blasint *, float *, float *, blasint *);
  399. void BLASFUNC(dgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
  400. double *, blasint *, double *, double *, blasint *);
  401. void BLASFUNC(qgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  402. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  403. void BLASFUNC(cgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *,
  404. float *, blasint *, float *, float *, blasint *);
  405. void BLASFUNC(zgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
  406. double *, blasint *, double *, double *, blasint *);
  407. void BLASFUNC(xgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  408. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  409. void BLASFUNC(ssbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
  410. float *, blasint *, float *, float *, blasint *);
  411. void BLASFUNC(dsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
  412. double *, blasint *, double *, double *, blasint *);
  413. void BLASFUNC(qsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  414. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  415. void BLASFUNC(csbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
  416. float *, blasint *, float *, float *, blasint *);
  417. void BLASFUNC(zsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
  418. double *, blasint *, double *, double *, blasint *);
  419. void BLASFUNC(xsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  420. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  421. void BLASFUNC(chbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
  422. float *, blasint *, float *, float *, blasint *);
  423. void BLASFUNC(zhbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
  424. double *, blasint *, double *, double *, blasint *);
  425. void BLASFUNC(xhbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  426. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  427. /* Level 3 routines */
  428. void BLASFUNC(shgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
  429. hfloat16 *, blasint *, hfloat16 *, blasint *, float *, float *, blasint *);
  430. void BLASFUNC(bgemm)(char *, char *, blasint *, blasint *, blasint *, bfloat16 *,
  431. bfloat16 *, blasint *, bfloat16 *, blasint *, bfloat16 *, bfloat16 *, blasint *);
  432. void BLASFUNC(sbgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
  433. bfloat16 *, blasint *, bfloat16 *, blasint *, float *, float *, blasint *);
  434. void BLASFUNC(sgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
  435. float *, blasint *, float *, blasint *, float *, float *, blasint *);
  436. void BLASFUNC(dgemm)(char *, char *, blasint *, blasint *, blasint *, double *,
  437. double *, blasint *, double *, blasint *, double *, double *, blasint *);
  438. void BLASFUNC(qgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
  439. xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  440. void BLASFUNC(cgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
  441. float *, blasint *, float *, blasint *, float *, float *, blasint *);
  442. void BLASFUNC(zgemm)(char *, char *, blasint *, blasint *, blasint *, double *,
  443. double *, blasint *, double *, blasint *, double *, double *, blasint *);
  444. void BLASFUNC(xgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
  445. xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  446. void BLASFUNC(cgemm3m)(char *, char *, blasint *, blasint *, blasint *, float *,
  447. float *, blasint *, float *, blasint *, float *, float *, blasint *);
  448. void BLASFUNC(zgemm3m)(char *, char *, blasint *, blasint *, blasint *, double *,
  449. double *, blasint *, double *, blasint *, double *, double *, blasint *);
  450. void BLASFUNC(xgemm3m)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
  451. xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  452. void BLASFUNC(sgemmt)(char*, char *, char *, blasint *, blasint *, float *,
  453. float *, blasint *, float *, blasint *, float *, float *, blasint *);
  454. void BLASFUNC(dgemmt)(char*, char *, char *, blasint *, blasint *, double *,
  455. double *, blasint *, double *, blasint *, double *, double *, blasint *);
  456. void BLASFUNC(cgemmt)(char*, char *, char *, blasint *, blasint *, float *,
  457. float *, blasint *, float *, blasint *, float *, float *, blasint *);
  458. void BLASFUNC(zgemmt)(char*, char *, char *, blasint *, blasint *, double *,
  459. double *, blasint *, double *, blasint *, double *, double *, blasint *);
  460. int BLASFUNC(sge2mm)(char *, char *, char *, blasint *, blasint *,
  461. float *, float *, blasint *, float *, blasint *,
  462. float *, float *, blasint *);
  463. int BLASFUNC(dge2mm)(char *, char *, char *, blasint *, blasint *,
  464. double *, double *, blasint *, double *, blasint *,
  465. double *, double *, blasint *);
  466. int BLASFUNC(cge2mm)(char *, char *, char *, blasint *, blasint *,
  467. float *, float *, blasint *, float *, blasint *,
  468. float *, float *, blasint *);
  469. int BLASFUNC(zge2mm)(char *, char *, char *, blasint *, blasint *,
  470. double *, double *, blasint *, double *, blasint *,
  471. double *, double *, blasint *);
  472. void BLASFUNC(strsm)(char *, char *, char *, char *, blasint *, blasint *,
  473. float *, float *, blasint *, float *, blasint *);
  474. void BLASFUNC(dtrsm)(char *, char *, char *, char *, blasint *, blasint *,
  475. double *, double *, blasint *, double *, blasint *);
  476. void BLASFUNC(qtrsm)(char *, char *, char *, char *, blasint *, blasint *,
  477. xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  478. void BLASFUNC(ctrsm)(char *, char *, char *, char *, blasint *, blasint *,
  479. float *, float *, blasint *, float *, blasint *);
  480. void BLASFUNC(ztrsm)(char *, char *, char *, char *, blasint *, blasint *,
  481. double *, double *, blasint *, double *, blasint *);
  482. void BLASFUNC(xtrsm)(char *, char *, char *, char *, blasint *, blasint *,
  483. xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  484. void BLASFUNC(strmm)(char *, char *, char *, char *, blasint *, blasint *,
  485. float *, float *, blasint *, float *, blasint *);
  486. void BLASFUNC(dtrmm)(char *, char *, char *, char *, blasint *, blasint *,
  487. double *, double *, blasint *, double *, blasint *);
  488. void BLASFUNC(qtrmm)(char *, char *, char *, char *, blasint *, blasint *,
  489. xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  490. void BLASFUNC(ctrmm)(char *, char *, char *, char *, blasint *, blasint *,
  491. float *, float *, blasint *, float *, blasint *);
  492. void BLASFUNC(ztrmm)(char *, char *, char *, char *, blasint *, blasint *,
  493. double *, double *, blasint *, double *, blasint *);
  494. void BLASFUNC(xtrmm)(char *, char *, char *, char *, blasint *, blasint *,
  495. xdouble *, xdouble *, blasint *, xdouble *, blasint *);
  496. void BLASFUNC(ssymm)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  497. float *, blasint *, float *, float *, blasint *);
  498. void BLASFUNC(dsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  499. double *, blasint *, double *, double *, blasint *);
  500. void BLASFUNC(qsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  501. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  502. void BLASFUNC(csymm)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  503. float *, blasint *, float *, float *, blasint *);
  504. void BLASFUNC(zsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  505. double *, blasint *, double *, double *, blasint *);
  506. void BLASFUNC(xsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  507. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  508. void BLASFUNC(csymm3m)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  509. float *, blasint *, float *, float *, blasint *);
  510. void BLASFUNC(zsymm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  511. double *, blasint *, double *, double *, blasint *);
  512. void BLASFUNC(xsymm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  513. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  514. void BLASFUNC(ssyrk)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  515. float *, float *, blasint *);
  516. void BLASFUNC(dsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  517. double *, double *, blasint *);
  518. void BLASFUNC(qsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  519. xdouble *, xdouble *, blasint *);
  520. void BLASFUNC(csyrk)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  521. float *, float *, blasint *);
  522. void BLASFUNC(zsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  523. double *, double *, blasint *);
  524. void BLASFUNC(xsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  525. xdouble *, xdouble *, blasint *);
  526. void BLASFUNC(ssyr2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  527. float *, blasint *, float *, float *, blasint *);
  528. void BLASFUNC(dsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  529. double*, blasint *, double *, double *, blasint *);
  530. void BLASFUNC(qsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  531. xdouble*, blasint *, xdouble *, xdouble *, blasint *);
  532. void BLASFUNC(csyr2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  533. float *, blasint *, float *, float *, blasint *);
  534. void BLASFUNC(zsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  535. double*, blasint *, double *, double *, blasint *);
  536. void BLASFUNC(xsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  537. xdouble*, blasint *, xdouble *, xdouble *, blasint *);
  538. void BLASFUNC(chemm)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  539. float *, blasint *, float *, float *, blasint *);
  540. void BLASFUNC(zhemm)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  541. double *, blasint *, double *, double *, blasint *);
  542. void BLASFUNC(xhemm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  543. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  544. void BLASFUNC(chemm3m)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  545. float *, blasint *, float *, float *, blasint *);
  546. void BLASFUNC(zhemm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  547. double *, blasint *, double *, double *, blasint *);
  548. void BLASFUNC(xhemm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  549. xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  550. void BLASFUNC(cherk)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  551. float *, float *, blasint *);
  552. void BLASFUNC(zherk)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  553. double *, double *, blasint *);
  554. void BLASFUNC(xherk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  555. xdouble *, xdouble *, blasint *);
  556. void BLASFUNC(cher2k)(char *, char *, blasint *, blasint *, float *, float *, blasint *,
  557. float *, blasint *, float *, float *, blasint *);
  558. void BLASFUNC(zher2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
  559. double*, blasint *, double *, double *, blasint *);
  560. void BLASFUNC(xher2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  561. xdouble*, blasint *, xdouble *, xdouble *, blasint *);
  562. int BLASFUNC(cher2m)(char *, char *, char *, blasint *, blasint *, float *, float *, blasint *,
  563. float *, blasint *, float *, float *, blasint *);
  564. int BLASFUNC(zher2m)(char *, char *, char *, blasint *, blasint *, double *, double *, blasint *,
  565. double*, blasint *, double *, double *, blasint *);
  566. int BLASFUNC(xher2m)(char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
  567. xdouble*, blasint *, xdouble *, xdouble *, blasint *);
  568. int BLASFUNC(sgemt)(char *, blasint *, blasint *, float *, float *, blasint *,
  569. float *, blasint *);
  570. int BLASFUNC(dgemt)(char *, blasint *, blasint *, double *, double *, blasint *,
  571. double *, blasint *);
  572. int BLASFUNC(cgemt)(char *, blasint *, blasint *, float *, float *, blasint *,
  573. float *, blasint *);
  574. int BLASFUNC(zgemt)(char *, blasint *, blasint *, double *, double *, blasint *,
  575. double *, blasint *);
  576. int BLASFUNC(sgema)(char *, char *, blasint *, blasint *, float *,
  577. float *, blasint *, float *, float *, blasint *, float *, blasint *);
  578. int BLASFUNC(dgema)(char *, char *, blasint *, blasint *, double *,
  579. double *, blasint *, double*, double *, blasint *, double*, blasint *);
  580. int BLASFUNC(cgema)(char *, char *, blasint *, blasint *, float *,
  581. float *, blasint *, float *, float *, blasint *, float *, blasint *);
  582. int BLASFUNC(zgema)(char *, char *, blasint *, blasint *, double *,
  583. double *, blasint *, double*, double *, blasint *, double*, blasint *);
  584. int BLASFUNC(sgems)(char *, char *, blasint *, blasint *, float *,
  585. float *, blasint *, float *, float *, blasint *, float *, blasint *);
  586. int BLASFUNC(dgems)(char *, char *, blasint *, blasint *, double *,
  587. double *, blasint *, double*, double *, blasint *, double*, blasint *);
  588. int BLASFUNC(cgems)(char *, char *, blasint *, blasint *, float *,
  589. float *, blasint *, float *, float *, blasint *, float *, blasint *);
  590. int BLASFUNC(zgems)(char *, char *, blasint *, blasint *, double *,
  591. double *, blasint *, double*, double *, blasint *, double*, blasint *);
  592. int BLASFUNC(sgemc)(char *, char *, blasint *, blasint *, blasint *, float *,
  593. float *, blasint *, float *, blasint *, float *, blasint *, float *, float *, blasint *);
  594. int BLASFUNC(dgemc)(char *, char *, blasint *, blasint *, blasint *, double *,
  595. double *, blasint *, double *, blasint *, double *, blasint *, double *, double *, blasint *);
  596. int BLASFUNC(qgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
  597. xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  598. int BLASFUNC(cgemc)(char *, char *, blasint *, blasint *, blasint *, float *,
  599. float *, blasint *, float *, blasint *, float *, blasint *, float *, float *, blasint *);
  600. int BLASFUNC(zgemc)(char *, char *, blasint *, blasint *, blasint *, double *,
  601. double *, blasint *, double *, blasint *, double *, blasint *, double *, double *, blasint *);
  602. int BLASFUNC(xgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
  603. xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
  604. /* Lapack routines */
  605. int BLASFUNC(sgetf2)(blasint *, blasint *, float *, blasint *, blasint *, blasint *);
  606. int BLASFUNC(dgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
  607. int BLASFUNC(qgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
  608. int BLASFUNC(cgetf2)(blasint *, blasint *, float *, blasint *, blasint *, blasint *);
  609. int BLASFUNC(zgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
  610. int BLASFUNC(xgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
  611. int BLASFUNC(sgetrf)(blasint *, blasint *, float *, blasint *, blasint *, blasint *);
  612. int BLASFUNC(dgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
  613. int BLASFUNC(qgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
  614. int BLASFUNC(cgetrf)(blasint *, blasint *, float *, blasint *, blasint *, blasint *);
  615. int BLASFUNC(zgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
  616. int BLASFUNC(xgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
  617. int BLASFUNC(slaswp)(blasint *, float *, blasint *, blasint *, blasint *, blasint *, blasint *);
  618. int BLASFUNC(dlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *);
  619. int BLASFUNC(qlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *);
  620. int BLASFUNC(claswp)(blasint *, float *, blasint *, blasint *, blasint *, blasint *, blasint *);
  621. int BLASFUNC(zlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *);
  622. int BLASFUNC(xlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *);
  623. int BLASFUNC(sgetrs)(char *, blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *);
  624. int BLASFUNC(dgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *);
  625. int BLASFUNC(qgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *);
  626. int BLASFUNC(cgetrs)(char *, blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *);
  627. int BLASFUNC(zgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *);
  628. int BLASFUNC(xgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *);
  629. int BLASFUNC(sgesv)(blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *);
  630. int BLASFUNC(dgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *);
  631. int BLASFUNC(qgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *);
  632. int BLASFUNC(cgesv)(blasint *, blasint *, float *, blasint *, blasint *, float *, blasint *, blasint *);
  633. int BLASFUNC(zgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *);
  634. int BLASFUNC(xgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *);
  635. int BLASFUNC(spotf2)(char *, blasint *, float *, blasint *, blasint *);
  636. int BLASFUNC(dpotf2)(char *, blasint *, double *, blasint *, blasint *);
  637. int BLASFUNC(qpotf2)(char *, blasint *, xdouble *, blasint *, blasint *);
  638. int BLASFUNC(cpotf2)(char *, blasint *, float *, blasint *, blasint *);
  639. int BLASFUNC(zpotf2)(char *, blasint *, double *, blasint *, blasint *);
  640. int BLASFUNC(xpotf2)(char *, blasint *, xdouble *, blasint *, blasint *);
  641. int BLASFUNC(spotrf)(char *, blasint *, float *, blasint *, blasint *);
  642. int BLASFUNC(dpotrf)(char *, blasint *, double *, blasint *, blasint *);
  643. int BLASFUNC(qpotrf)(char *, blasint *, xdouble *, blasint *, blasint *);
  644. int BLASFUNC(cpotrf)(char *, blasint *, float *, blasint *, blasint *);
  645. int BLASFUNC(zpotrf)(char *, blasint *, double *, blasint *, blasint *);
  646. int BLASFUNC(xpotrf)(char *, blasint *, xdouble *, blasint *, blasint *);
  647. int BLASFUNC(spotri)(char *, blasint *, float *, blasint *, blasint *);
  648. int BLASFUNC(dpotri)(char *, blasint *, double *, blasint *, blasint *);
  649. int BLASFUNC(qpotri)(char *, blasint *, xdouble *, blasint *, blasint *);
  650. int BLASFUNC(cpotri)(char *, blasint *, float *, blasint *, blasint *);
  651. int BLASFUNC(zpotri)(char *, blasint *, double *, blasint *, blasint *);
  652. int BLASFUNC(xpotri)(char *, blasint *, xdouble *, blasint *, blasint *);
  653. int BLASFUNC(spotrs)(char *, blasint *, blasint *, float *, blasint *, float *, blasint *, blasint *);
  654. int BLASFUNC(dpotrs)(char *, blasint *, blasint *, double *, blasint *, double *, blasint *, blasint *);
  655. int BLASFUNC(qpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *);
  656. int BLASFUNC(cpotrs)(char *, blasint *, blasint *, float *, blasint *, float *, blasint *, blasint *);
  657. int BLASFUNC(zpotrs)(char *, blasint *, blasint *, double *, blasint *, double *, blasint *, blasint *);
  658. int BLASFUNC(xpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *);
  659. int BLASFUNC(slauu2)(char *, blasint *, float *, blasint *, blasint *);
  660. int BLASFUNC(dlauu2)(char *, blasint *, double *, blasint *, blasint *);
  661. int BLASFUNC(qlauu2)(char *, blasint *, xdouble *, blasint *, blasint *);
  662. int BLASFUNC(clauu2)(char *, blasint *, float *, blasint *, blasint *);
  663. int BLASFUNC(zlauu2)(char *, blasint *, double *, blasint *, blasint *);
  664. int BLASFUNC(xlauu2)(char *, blasint *, xdouble *, blasint *, blasint *);
  665. int BLASFUNC(slauum)(char *, blasint *, float *, blasint *, blasint *);
  666. int BLASFUNC(dlauum)(char *, blasint *, double *, blasint *, blasint *);
  667. int BLASFUNC(qlauum)(char *, blasint *, xdouble *, blasint *, blasint *);
  668. int BLASFUNC(clauum)(char *, blasint *, float *, blasint *, blasint *);
  669. int BLASFUNC(zlauum)(char *, blasint *, double *, blasint *, blasint *);
  670. int BLASFUNC(xlauum)(char *, blasint *, xdouble *, blasint *, blasint *);
  671. int BLASFUNC(strti2)(char *, char *, blasint *, float *, blasint *, blasint *);
  672. int BLASFUNC(dtrti2)(char *, char *, blasint *, double *, blasint *, blasint *);
  673. int BLASFUNC(qtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
  674. int BLASFUNC(ctrti2)(char *, char *, blasint *, float *, blasint *, blasint *);
  675. int BLASFUNC(ztrti2)(char *, char *, blasint *, double *, blasint *, blasint *);
  676. int BLASFUNC(xtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
  677. int BLASFUNC(strtri)(char *, char *, blasint *, float *, blasint *, blasint *);
  678. int BLASFUNC(dtrtri)(char *, char *, blasint *, double *, blasint *, blasint *);
  679. int BLASFUNC(qtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
  680. int BLASFUNC(ctrtri)(char *, char *, blasint *, float *, blasint *, blasint *);
  681. int BLASFUNC(ztrtri)(char *, char *, blasint *, double *, blasint *, blasint *);
  682. int BLASFUNC(xtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
  683. FLOATRET BLASFUNC(slamch)(char *);
  684. double BLASFUNC(dlamch)(char *);
  685. xdouble BLASFUNC(qlamch)(char *);
  686. FLOATRET BLASFUNC(slamc3)(float *, float *);
  687. double BLASFUNC(dlamc3)(double *, double *);
  688. xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *);
  689. /* BLAS extensions */
  690. void BLASFUNC(saxpby) (blasint *, float *, float *, blasint *, float *, float *, blasint *);
  691. void BLASFUNC(daxpby) (blasint *, double *, double *, blasint *, double *, double *, blasint *);
  692. void BLASFUNC(caxpby) (blasint *, void *, float *, blasint *, void *, float *, blasint *);
  693. void BLASFUNC(zaxpby) (blasint *, void *, double *, blasint *, void *, double *, blasint *);
  694. void BLASFUNC(somatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *);
  695. void BLASFUNC(domatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *);
  696. void BLASFUNC(comatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *);
  697. void BLASFUNC(zomatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *);
  698. void BLASFUNC(simatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *);
  699. void BLASFUNC(dimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *);
  700. void BLASFUNC(cimatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *);
  701. void BLASFUNC(zimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *);
  702. void BLASFUNC(sgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*);
  703. void BLASFUNC(dgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*);
  704. void BLASFUNC(cgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*);
  705. void BLASFUNC(zgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*);
  706. #ifdef __cplusplus
  707. }
  708. #endif /* __cplusplus */
  709. #endif