blas.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. #ifndef BLAS_WRAP_H
  2. #define BLAS_WRAP_H
  3. extern int caxpy_(integer * n, complex * ca, complex * cx, integer * incx,
  4. complex * cy, integer * incy);
  5. extern int ccopy_(integer * n, complex * cx, integer * incx, complex * cy,
  6. integer * incy);
  7. extern C_f cdotc_(complex * ret_val, integer * n, complex * cx,
  8. integer * incx, complex * cy, integer * incy);
  9. extern C_f cdotu_(complex * ret_val, integer * n, complex * cx,
  10. integer * incx, complex * cy, integer * incy);
  11. extern int cgbmv_(char *trans, integer * m, integer * n, integer * kl,
  12. integer * ku, complex * alpha, complex * a, integer * lda,
  13. complex * x, integer * incx, complex * beta, complex * y,
  14. integer * incy, ftnlen trans_len);
  15. extern int cgemm_(char *transa, char *transb, integer * m, integer * n,
  16. integer * k, complex * alpha, complex * a, integer * lda,
  17. complex * b, integer * ldb, complex * beta, complex * c__,
  18. integer * ldc, ftnlen transa_len, ftnlen transb_len);
  19. extern int cgemv_(char *trans, integer * m, integer * n, complex * alpha,
  20. complex * a, integer * lda, complex * x, integer * incx,
  21. complex * beta, complex * y, integer * incy,
  22. ftnlen trans_len);
  23. extern int cgerc_(integer * m, integer * n, complex * alpha, complex * x,
  24. integer * incx, complex * y, integer * incy, complex * a,
  25. integer * lda);
  26. extern int cgeru_(integer * m, integer * n, complex * alpha, complex * x,
  27. integer * incx, complex * y, integer * incy, complex * a,
  28. integer * lda);
  29. extern int chbmv_(char *uplo, integer * n, integer * k, complex * alpha,
  30. complex * a, integer * lda, complex * x, integer * incx,
  31. complex * beta, complex * y, integer * incy,
  32. ftnlen uplo_len);
  33. extern int chemm_(char *side, char *uplo, integer * m, integer * n,
  34. complex * alpha, complex * a, integer * lda, complex * b,
  35. integer * ldb, complex * beta, complex * c__, integer * ldc,
  36. ftnlen side_len, ftnlen uplo_len);
  37. extern int chemv_(char *uplo, integer * n, complex * alpha, complex * a,
  38. integer * lda, complex * x, integer * incx, complex * beta,
  39. complex * y, integer * incy, ftnlen uplo_len);
  40. extern int cher_(char *uplo, integer * n, real * alpha, complex * x,
  41. integer * incx, complex * a, integer * lda, ftnlen uplo_len);
  42. extern int cher2_(char *uplo, integer * n, complex * alpha, complex * x,
  43. integer * incx, complex * y, integer * incy, complex * a,
  44. integer * lda, ftnlen uplo_len);
  45. extern int cher2k_(char *uplo, char *trans, integer * n, integer * k,
  46. complex * alpha, complex * a, integer * lda, complex * b,
  47. integer * ldb, real * beta, complex * c__, integer * ldc,
  48. ftnlen uplo_len, ftnlen trans_len);
  49. extern int cherk_(char *uplo, char *trans, integer * n, integer * k,
  50. real * alpha, complex * a, integer * lda, real * beta,
  51. complex * c__, integer * ldc, ftnlen uplo_len,
  52. ftnlen trans_len);
  53. extern int chpmv_(char *uplo, integer * n, complex * alpha, complex * ap,
  54. complex * x, integer * incx, complex * beta, complex * y,
  55. integer * incy, ftnlen uplo_len);
  56. extern int chpr_(char *uplo, integer * n, real * alpha, complex * x,
  57. integer * incx, complex * ap, ftnlen uplo_len);
  58. extern int chpr2_(char *uplo, integer * n, complex * alpha, complex * x,
  59. integer * incx, complex * y, integer * incy, complex * ap,
  60. ftnlen uplo_len);
  61. extern int crotg_(complex * ca, complex * cb, real * c__, complex * s);
  62. extern int cscal_(integer * n, complex * ca, complex * cx, integer * incx);
  63. extern int csrot_(integer * n, complex * cx, integer * incx, complex * cy,
  64. integer * incy, real * c__, real * s);
  65. extern int csscal_(integer * n, real * sa, complex * cx, integer * incx);
  66. extern int cswap_(integer * n, complex * cx, integer * incx, complex * cy,
  67. integer * incy);
  68. extern int csymm_(char *side, char *uplo, integer * m, integer * n,
  69. complex * alpha, complex * a, integer * lda, complex * b,
  70. integer * ldb, complex * beta, complex * c__, integer * ldc,
  71. ftnlen side_len, ftnlen uplo_len);
  72. extern int csyr2k_(char *uplo, char *trans, integer * n, integer * k,
  73. complex * alpha, complex * a, integer * lda, complex * b,
  74. integer * ldb, complex * beta, complex * c__,
  75. integer * ldc, ftnlen uplo_len, ftnlen trans_len);
  76. extern int csyrk_(char *uplo, char *trans, integer * n, integer * k,
  77. complex * alpha, complex * a, integer * lda, complex * beta,
  78. complex * c__, integer * ldc, ftnlen uplo_len,
  79. ftnlen trans_len);
  80. extern int ctbmv_(char *uplo, char *trans, char *diag, integer * n,
  81. integer * k, complex * a, integer * lda, complex * x,
  82. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  83. ftnlen diag_len);
  84. extern int ctbsv_(char *uplo, char *trans, char *diag, integer * n,
  85. integer * k, complex * a, integer * lda, complex * x,
  86. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  87. ftnlen diag_len);
  88. extern int ctpmv_(char *uplo, char *trans, char *diag, integer * n,
  89. complex * ap, complex * x, integer * incx, ftnlen uplo_len,
  90. ftnlen trans_len, ftnlen diag_len);
  91. extern int ctpsv_(char *uplo, char *trans, char *diag, integer * n,
  92. complex * ap, complex * x, integer * incx, ftnlen uplo_len,
  93. ftnlen trans_len, ftnlen diag_len);
  94. extern int ctrmm_(char *side, char *uplo, char *transa, char *diag,
  95. integer * m, integer * n, complex * alpha, complex * a,
  96. integer * lda, complex * b, integer * ldb, ftnlen side_len,
  97. ftnlen uplo_len, ftnlen transa_len, ftnlen diag_len);
  98. extern int ctrmv_(char *uplo, char *trans, char *diag, integer * n,
  99. complex * a, integer * lda, complex * x, integer * incx,
  100. ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
  101. extern int ctrsm_(char *side, char *uplo, char *transa, char *diag,
  102. integer * m, integer * n, complex * alpha, complex * a,
  103. integer * lda, complex * b, integer * ldb, ftnlen side_len,
  104. ftnlen uplo_len, ftnlen transa_len, ftnlen diag_len);
  105. extern int ctrsv_(char *uplo, char *trans, char *diag, integer * n,
  106. complex * a, integer * lda, complex * x, integer * incx,
  107. ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
  108. extern doublereal dasum_(integer * n, doublereal * dx, integer * incx);
  109. extern int daxpy_(integer * n, doublereal * da, doublereal * dx,
  110. integer * incx, doublereal * dy, integer * incy);
  111. extern doublereal dcabs1_(doublecomplex * z__);
  112. extern int dcopy_(integer * n, doublereal * dx, integer * incx,
  113. doublereal * dy, integer * incy);
  114. extern doublereal ddot_(integer * n, doublereal * dx, integer * incx,
  115. doublereal * dy, integer * incy);
  116. extern int dgbmv_(char *trans, integer * m, integer * n, integer * kl,
  117. integer * ku, doublereal * alpha, doublereal * a,
  118. integer * lda, doublereal * x, integer * incx,
  119. doublereal * beta, doublereal * y, integer * incy,
  120. ftnlen trans_len);
  121. extern int dgemm_(char *transa, char *transb, integer * m, integer * n,
  122. integer * k, doublereal * alpha, doublereal * a,
  123. integer * lda, doublereal * b, integer * ldb,
  124. doublereal * beta, doublereal * c__, integer * ldc);
  125. extern int dgemv_(char *trans, integer * m, integer * n, doublereal * alpha,
  126. doublereal * a, integer * lda, doublereal * x,
  127. integer * incx, doublereal * beta, doublereal * y,
  128. integer * incy, ftnlen trans_len);
  129. extern int dger_(integer * m, integer * n, doublereal * alpha, doublereal * x,
  130. integer * incx, doublereal * y, integer * incy,
  131. doublereal * a, integer * lda);
  132. extern doublereal dnrm2_(integer * n, doublereal * x, integer * incx);
  133. extern int drot_(integer * n, doublereal * dx, integer * incx,
  134. doublereal * dy, integer * incy, doublereal * c__,
  135. doublereal * s);
  136. extern int drotg_(doublereal * da, doublereal * db, doublereal * c__,
  137. doublereal * s);
  138. extern int drotm_(integer * n, doublereal * dx, integer * incx,
  139. doublereal * dy, integer * incy, doublereal * dparam);
  140. extern int drotmg_(doublereal * dd1, doublereal * dd2, doublereal * dx1,
  141. doublereal * dy1, doublereal * dparam);
  142. extern int dsbmv_(char *uplo, integer * n, integer * k, doublereal * alpha,
  143. doublereal * a, integer * lda, doublereal * x,
  144. integer * incx, doublereal * beta, doublereal * y,
  145. integer * incy, ftnlen uplo_len);
  146. extern int dscal_(integer * n, doublereal * da, doublereal * dx,
  147. integer * incx);
  148. extern doublereal dsdot_(integer * n, real * sx, integer * incx, real * sy,
  149. integer * incy);
  150. extern int dspmv_(char *uplo, integer * n, doublereal * alpha,
  151. doublereal * ap, doublereal * x, integer * incx,
  152. doublereal * beta, doublereal * y, integer * incy,
  153. ftnlen uplo_len);
  154. extern int dspr_(char *uplo, integer * n, doublereal * alpha, doublereal * x,
  155. integer * incx, doublereal * ap, ftnlen uplo_len);
  156. extern int dspr2_(char *uplo, integer * n, doublereal * alpha, doublereal * x,
  157. integer * incx, doublereal * y, integer * incy,
  158. doublereal * ap, ftnlen uplo_len);
  159. extern int dswap_(integer * n, doublereal * dx, integer * incx,
  160. doublereal * dy, integer * incy);
  161. extern int dsymm_(char *side, char *uplo, integer * m, integer * n,
  162. doublereal * alpha, doublereal * a, integer * lda,
  163. doublereal * b, integer * ldb, doublereal * beta,
  164. doublereal * c__, integer * ldc, ftnlen side_len,
  165. ftnlen uplo_len);
  166. extern int dsymv_(char *uplo, integer * n, doublereal * alpha, doublereal * a,
  167. integer * lda, doublereal * x, integer * incx,
  168. doublereal * beta, doublereal * y, integer * incy,
  169. ftnlen uplo_len);
  170. extern int dsyr_(char *uplo, integer * n, doublereal * alpha, doublereal * x,
  171. integer * incx, doublereal * a, integer * lda,
  172. ftnlen uplo_len);
  173. extern int dsyr2_(char *uplo, integer * n, doublereal * alpha, doublereal * x,
  174. integer * incx, doublereal * y, integer * incy,
  175. doublereal * a, integer * lda, ftnlen uplo_len);
  176. extern int dsyr2k_(char *uplo, char *trans, integer * n, integer * k,
  177. doublereal * alpha, doublereal * a, integer * lda,
  178. doublereal * b, integer * ldb, doublereal * beta,
  179. doublereal * c__, integer * ldc, ftnlen uplo_len,
  180. ftnlen trans_len);
  181. extern int dsyrk_(char *uplo, char *trans, integer * n, integer * k,
  182. doublereal * alpha, doublereal * a, integer * lda,
  183. doublereal * beta, doublereal * c__, integer * ldc,
  184. ftnlen uplo_len, ftnlen trans_len);
  185. extern int dtbmv_(char *uplo, char *trans, char *diag, integer * n,
  186. integer * k, doublereal * a, integer * lda, doublereal * x,
  187. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  188. ftnlen diag_len);
  189. extern int dtbsv_(char *uplo, char *trans, char *diag, integer * n,
  190. integer * k, doublereal * a, integer * lda, doublereal * x,
  191. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  192. ftnlen diag_len);
  193. extern int dtpmv_(char *uplo, char *trans, char *diag, integer * n,
  194. doublereal * ap, doublereal * x, integer * incx,
  195. ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
  196. extern int dtpsv_(char *uplo, char *trans, char *diag, integer * n,
  197. doublereal * ap, doublereal * x, integer * incx,
  198. ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
  199. extern int dtrmm_(char *side, char *uplo, char *transa, char *diag,
  200. integer * m, integer * n, doublereal * alpha,
  201. doublereal * a, integer * lda, doublereal * b,
  202. integer * ldb, ftnlen side_len, ftnlen uplo_len,
  203. ftnlen transa_len, ftnlen diag_len);
  204. extern int dtrmv_(char *uplo, char *trans, char *diag, integer * n,
  205. doublereal * a, integer * lda, doublereal * x,
  206. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  207. ftnlen diag_len);
  208. extern int dtrsm_(char *side, char *uplo, char *transa, char *diag,
  209. integer * m, integer * n, doublereal * alpha,
  210. doublereal * a, integer * lda, doublereal * b,
  211. integer * ldb, ftnlen side_len, ftnlen uplo_len,
  212. ftnlen transa_len, ftnlen diag_len);
  213. extern int dtrsv_(char *uplo, char *trans, char *diag, integer * n,
  214. doublereal * a, integer * lda, doublereal * x,
  215. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  216. ftnlen diag_len);
  217. extern doublereal dzasum_(integer * n, doublecomplex * zx, integer * incx);
  218. extern doublereal dznrm2_(integer * n, doublecomplex * x, integer * incx);
  219. extern integer icamax_(integer * n, complex * cx, integer * incx);
  220. extern integer idamax_(integer * n, doublereal * dx, integer * incx);
  221. extern integer isamax_(integer * n, real * sx, integer * incx);
  222. extern integer izamax_(integer * n, doublecomplex * zx, integer * incx);
  223. extern logical lsame_(char *ca, char *cb, ftnlen ca_len, ftnlen cb_len);
  224. extern E_f sasum_(integer * n, real * sx, integer * incx);
  225. extern int saxpy_(integer * n, real * sa, real * sx, integer * incx,
  226. real * sy, integer * incy);
  227. extern E_f scasum_(integer * n, complex * cx, integer * incx);
  228. extern E_f scnrm2_(integer * n, complex * x, integer * incx);
  229. extern int scopy_(integer * n, real * sx, integer * incx, real * sy,
  230. integer * incy);
  231. extern E_f sdot_(integer * n, real * sx, integer * incx, real * sy,
  232. integer * incy);
  233. extern E_f sdsdot_(integer * n, real * sb, real * sx, integer * incx,
  234. real * sy, integer * incy);
  235. extern int sgbmv_(char *trans, integer * m, integer * n, integer * kl,
  236. integer * ku, real * alpha, real * a, integer * lda,
  237. real * x, integer * incx, real * beta, real * y,
  238. integer * incy, ftnlen trans_len);
  239. extern int sgemm_(char *transa, char *transb, integer * m, integer * n,
  240. integer * k, real * alpha, real * a, integer * lda,
  241. real * b, integer * ldb, real * beta, real * c__,
  242. integer * ldc, ftnlen transa_len, ftnlen transb_len);
  243. extern int sgemv_(char *trans, integer * m, integer * n, real * alpha,
  244. real * a, integer * lda, real * x, integer * incx,
  245. real * beta, real * y, integer * incy, ftnlen trans_len);
  246. extern int sger_(integer * m, integer * n, real * alpha, real * x,
  247. integer * incx, real * y, integer * incy, real * a,
  248. integer * lda);
  249. extern E_f snrm2_(integer * n, real * x, integer * incx);
  250. extern int srot_(integer * n, real * sx, integer * incx, real * sy,
  251. integer * incy, real * c__, real * s);
  252. extern int srotg_(real * sa, real * sb, real * c__, real * s);
  253. extern int srotm_(integer * n, real * sx, integer * incx, real * sy,
  254. integer * incy, real * sparam);
  255. extern int srotmg_(real * sd1, real * sd2, real * sx1, real * sy1,
  256. real * sparam);
  257. extern int ssbmv_(char *uplo, integer * n, integer * k, real * alpha,
  258. real * a, integer * lda, real * x, integer * incx,
  259. real * beta, real * y, integer * incy, ftnlen uplo_len);
  260. extern int sscal_(integer * n, real * sa, real * sx, integer * incx);
  261. extern int sspmv_(char *uplo, integer * n, real * alpha, real * ap, real * x,
  262. integer * incx, real * beta, real * y, integer * incy,
  263. ftnlen uplo_len);
  264. extern int sspr_(char *uplo, integer * n, real * alpha, real * x,
  265. integer * incx, real * ap, ftnlen uplo_len);
  266. extern int sspr2_(char *uplo, integer * n, real * alpha, real * x,
  267. integer * incx, real * y, integer * incy, real * ap,
  268. ftnlen uplo_len);
  269. extern int sswap_(integer * n, real * sx, integer * incx, real * sy,
  270. integer * incy);
  271. extern int ssymm_(char *side, char *uplo, integer * m, integer * n,
  272. real * alpha, real * a, integer * lda, real * b,
  273. integer * ldb, real * beta, real * c__, integer * ldc,
  274. ftnlen side_len, ftnlen uplo_len);
  275. extern int ssymv_(char *uplo, integer * n, real * alpha, real * a,
  276. integer * lda, real * x, integer * incx, real * beta,
  277. real * y, integer * incy, ftnlen uplo_len);
  278. extern int ssyr_(char *uplo, integer * n, real * alpha, real * x,
  279. integer * incx, real * a, integer * lda, ftnlen uplo_len);
  280. extern int ssyr2_(char *uplo, integer * n, real * alpha, real * x,
  281. integer * incx, real * y, integer * incy, real * a,
  282. integer * lda, ftnlen uplo_len);
  283. extern int ssyr2k_(char *uplo, char *trans, integer * n, integer * k,
  284. real * alpha, real * a, integer * lda, real * b,
  285. integer * ldb, real * beta, real * c__, integer * ldc,
  286. ftnlen uplo_len, ftnlen trans_len);
  287. extern int ssyrk_(char *uplo, char *trans, integer * n, integer * k,
  288. real * alpha, real * a, integer * lda, real * beta,
  289. real * c__, integer * ldc, ftnlen uplo_len,
  290. ftnlen trans_len);
  291. extern int stbmv_(char *uplo, char *trans, char *diag, integer * n,
  292. integer * k, real * a, integer * lda, real * x,
  293. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  294. ftnlen diag_len);
  295. extern int stbsv_(char *uplo, char *trans, char *diag, integer * n,
  296. integer * k, real * a, integer * lda, real * x,
  297. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  298. ftnlen diag_len);
  299. extern int stpmv_(char *uplo, char *trans, char *diag, integer * n, real * ap,
  300. real * x, integer * incx, ftnlen uplo_len, ftnlen trans_len,
  301. ftnlen diag_len);
  302. extern int stpsv_(char *uplo, char *trans, char *diag, integer * n, real * ap,
  303. real * x, integer * incx, ftnlen uplo_len, ftnlen trans_len,
  304. ftnlen diag_len);
  305. extern int strmm_(char *side, char *uplo, char *transa, char *diag,
  306. integer * m, integer * n, real * alpha, real * a,
  307. integer * lda, real * b, integer * ldb, ftnlen side_len,
  308. ftnlen uplo_len, ftnlen transa_len, ftnlen diag_len);
  309. extern int strmv_(char *uplo, char *trans, char *diag, integer * n, real * a,
  310. integer * lda, real * x, integer * incx, ftnlen uplo_len,
  311. ftnlen trans_len, ftnlen diag_len);
  312. extern int strsm_(char *side, char *uplo, char *transa, char *diag,
  313. integer * m, integer * n, real * alpha, real * a,
  314. integer * lda, real * b, integer * ldb, ftnlen side_len,
  315. ftnlen uplo_len, ftnlen transa_len, ftnlen diag_len);
  316. extern int strsv_(char *uplo, char *trans, char *diag, integer * n, real * a,
  317. integer * lda, real * x, integer * incx, ftnlen uplo_len,
  318. ftnlen trans_len, ftnlen diag_len);
  319. extern int xerbla_(char *srname, integer * info, ftnlen srname_len);
  320. extern int zaxpy_(integer * n, doublecomplex * za, doublecomplex * zx,
  321. integer * incx, doublecomplex * zy, integer * incy);
  322. extern int zcopy_(integer * n, doublecomplex * zx, integer * incx,
  323. doublecomplex * zy, integer * incy);
  324. extern Z_f zdotc_(doublecomplex * ret_val, integer * n, doublecomplex * zx,
  325. integer * incx, doublecomplex * zy, integer * incy);
  326. extern Z_f zdotu_(doublecomplex * ret_val, integer * n, doublecomplex * zx,
  327. integer * incx, doublecomplex * zy, integer * incy);
  328. extern int zdrot_(integer * n, doublecomplex * zx, integer * incx,
  329. doublecomplex * zy, integer * incy, doublereal * c__,
  330. doublereal * s);
  331. extern int zdscal_(integer * n, doublereal * da, doublecomplex * zx,
  332. integer * incx);
  333. extern int zgbmv_(char *trans, integer * m, integer * n, integer * kl,
  334. integer * ku, doublecomplex * alpha, doublecomplex * a,
  335. integer * lda, doublecomplex * x, integer * incx,
  336. doublecomplex * beta, doublecomplex * y, integer * incy,
  337. ftnlen trans_len);
  338. extern int zgemm_(char *transa, char *transb, integer * m, integer * n,
  339. integer * k, doublecomplex * alpha, doublecomplex * a,
  340. integer * lda, doublecomplex * b, integer * ldb,
  341. doublecomplex * beta, doublecomplex * c__, integer * ldc,
  342. ftnlen transa_len, ftnlen transb_len);
  343. extern int zgemv_(char *trans, integer * m, integer * n,
  344. doublecomplex * alpha, doublecomplex * a, integer * lda,
  345. doublecomplex * x, integer * incx, doublecomplex * beta,
  346. doublecomplex * y, integer * incy, ftnlen trans_len);
  347. extern int zgerc_(integer * m, integer * n, doublecomplex * alpha,
  348. doublecomplex * x, integer * incx, doublecomplex * y,
  349. integer * incy, doublecomplex * a, integer * lda);
  350. extern int zgeru_(integer * m, integer * n, doublecomplex * alpha,
  351. doublecomplex * x, integer * incx, doublecomplex * y,
  352. integer * incy, doublecomplex * a, integer * lda);
  353. extern int zhbmv_(char *uplo, integer * n, integer * k, doublecomplex * alpha,
  354. doublecomplex * a, integer * lda, doublecomplex * x,
  355. integer * incx, doublecomplex * beta, doublecomplex * y,
  356. integer * incy, ftnlen uplo_len);
  357. extern int zhemm_(char *side, char *uplo, integer * m, integer * n,
  358. doublecomplex * alpha, doublecomplex * a, integer * lda,
  359. doublecomplex * b, integer * ldb, doublecomplex * beta,
  360. doublecomplex * c__, integer * ldc, ftnlen side_len,
  361. ftnlen uplo_len);
  362. extern int zhemv_(char *uplo, integer * n, doublecomplex * alpha,
  363. doublecomplex * a, integer * lda, doublecomplex * x,
  364. integer * incx, doublecomplex * beta, doublecomplex * y,
  365. integer * incy, ftnlen uplo_len);
  366. extern int zher_(char *uplo, integer * n, doublereal * alpha,
  367. doublecomplex * x, integer * incx, doublecomplex * a,
  368. integer * lda, ftnlen uplo_len);
  369. extern int zher2_(char *uplo, integer * n, doublecomplex * alpha,
  370. doublecomplex * x, integer * incx, doublecomplex * y,
  371. integer * incy, doublecomplex * a, integer * lda,
  372. ftnlen uplo_len);
  373. extern int zher2k_(char *uplo, char *trans, integer * n, integer * k,
  374. doublecomplex * alpha, doublecomplex * a, integer * lda,
  375. doublecomplex * b, integer * ldb, doublereal * beta,
  376. doublecomplex * c__, integer * ldc, ftnlen uplo_len,
  377. ftnlen trans_len);
  378. extern int zherk_(char *uplo, char *trans, integer * n, integer * k,
  379. doublereal * alpha, doublecomplex * a, integer * lda,
  380. doublereal * beta, doublecomplex * c__, integer * ldc,
  381. ftnlen uplo_len, ftnlen trans_len);
  382. extern int zhpmv_(char *uplo, integer * n, doublecomplex * alpha,
  383. doublecomplex * ap, doublecomplex * x, integer * incx,
  384. doublecomplex * beta, doublecomplex * y, integer * incy,
  385. ftnlen uplo_len);
  386. extern int zhpr_(char *uplo, integer * n, doublereal * alpha,
  387. doublecomplex * x, integer * incx, doublecomplex * ap,
  388. ftnlen uplo_len);
  389. extern int zhpr2_(char *uplo, integer * n, doublecomplex * alpha,
  390. doublecomplex * x, integer * incx, doublecomplex * y,
  391. integer * incy, doublecomplex * ap, ftnlen uplo_len);
  392. extern int zrotg_(doublecomplex * ca, doublecomplex * cb, doublereal * c__,
  393. doublecomplex * s);
  394. extern int zscal_(integer * n, doublecomplex * za, doublecomplex * zx,
  395. integer * incx);
  396. extern int zswap_(integer * n, doublecomplex * zx, integer * incx,
  397. doublecomplex * zy, integer * incy);
  398. extern int zsymm_(char *side, char *uplo, integer * m, integer * n,
  399. doublecomplex * alpha, doublecomplex * a, integer * lda,
  400. doublecomplex * b, integer * ldb, doublecomplex * beta,
  401. doublecomplex * c__, integer * ldc, ftnlen side_len,
  402. ftnlen uplo_len);
  403. extern int zsyr2k_(char *uplo, char *trans, integer * n, integer * k,
  404. doublecomplex * alpha, doublecomplex * a, integer * lda,
  405. doublecomplex * b, integer * ldb, doublecomplex * beta,
  406. doublecomplex * c__, integer * ldc, ftnlen uplo_len,
  407. ftnlen trans_len);
  408. extern int zsyrk_(char *uplo, char *trans, integer * n, integer * k,
  409. doublecomplex * alpha, doublecomplex * a, integer * lda,
  410. doublecomplex * beta, doublecomplex * c__, integer * ldc,
  411. ftnlen uplo_len, ftnlen trans_len);
  412. extern int ztbmv_(char *uplo, char *trans, char *diag, integer * n,
  413. integer * k, doublecomplex * a, integer * lda,
  414. doublecomplex * x, integer * incx, ftnlen uplo_len,
  415. ftnlen trans_len, ftnlen diag_len);
  416. extern int ztbsv_(char *uplo, char *trans, char *diag, integer * n,
  417. integer * k, doublecomplex * a, integer * lda,
  418. doublecomplex * x, integer * incx, ftnlen uplo_len,
  419. ftnlen trans_len, ftnlen diag_len);
  420. extern int ztpmv_(char *uplo, char *trans, char *diag, integer * n,
  421. doublecomplex * ap, doublecomplex * x, integer * incx,
  422. ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
  423. extern int ztpsv_(char *uplo, char *trans, char *diag, integer * n,
  424. doublecomplex * ap, doublecomplex * x, integer * incx,
  425. ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
  426. extern int ztrmm_(char *side, char *uplo, char *transa, char *diag,
  427. integer * m, integer * n, doublecomplex * alpha,
  428. doublecomplex * a, integer * lda, doublecomplex * b,
  429. integer * ldb, ftnlen side_len, ftnlen uplo_len,
  430. ftnlen transa_len, ftnlen diag_len);
  431. extern int ztrmv_(char *uplo, char *trans, char *diag, integer * n,
  432. doublecomplex * a, integer * lda, doublecomplex * x,
  433. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  434. ftnlen diag_len);
  435. extern int ztrsm_(char *side, char *uplo, char *transa, char *diag,
  436. integer * m, integer * n, doublecomplex * alpha,
  437. doublecomplex * a, integer * lda, doublecomplex * b,
  438. integer * ldb, ftnlen side_len, ftnlen uplo_len,
  439. ftnlen transa_len, ftnlen diag_len);
  440. extern int ztrsv_(char *uplo, char *trans, char *diag, integer * n,
  441. doublecomplex * a, integer * lda, doublecomplex * x,
  442. integer * incx, ftnlen uplo_len, ftnlen trans_len,
  443. ftnlen diag_len);
  444. #endif