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.

lapack_wrappers.c 15 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. #include "relapack.h"
  2. ////////////
  3. // XLAUUM //
  4. ////////////
  5. #if INCLUDE_SLAUUM
  6. void LAPACK(slauum)(
  7. const char *uplo, const blasint *n,
  8. float *A, const blasint *ldA,
  9. blasint *info
  10. ) {
  11. RELAPACK_slauum(uplo, n, A, ldA, info);
  12. }
  13. #endif
  14. #if INCLUDE_DLAUUM
  15. void LAPACK(dlauum)(
  16. const char *uplo, const blasint *n,
  17. double *A, const blasint *ldA,
  18. blasint *info
  19. ) {
  20. RELAPACK_dlauum(uplo, n, A, ldA, info);
  21. }
  22. #endif
  23. #if INCLUDE_CLAUUM
  24. void LAPACK(clauum)(
  25. const char *uplo, const blasint *n,
  26. float *A, const blasint *ldA,
  27. blasint *info
  28. ) {
  29. RELAPACK_clauum(uplo, n, A, ldA, info);
  30. }
  31. #endif
  32. #if INCLUDE_ZLAUUM
  33. void LAPACK(zlauum)(
  34. const char *uplo, const blasint *n,
  35. double *A, const blasint *ldA,
  36. blasint *info
  37. ) {
  38. RELAPACK_zlauum(uplo, n, A, ldA, info);
  39. }
  40. #endif
  41. ////////////
  42. // XSYGST //
  43. ////////////
  44. #if INCLUDE_SSYGST
  45. void LAPACK(ssygst)(
  46. const blasint *itype, const char *uplo, const blasint *n,
  47. float *A, const blasint *ldA, const float *B, const blasint *ldB,
  48. blasint *info
  49. ) {
  50. RELAPACK_ssygst(itype, uplo, n, A, ldA, B, ldB, info);
  51. }
  52. #endif
  53. #if INCLUDE_DSYGST
  54. void LAPACK(dsygst)(
  55. const blasint *itype, const char *uplo, const blasint *n,
  56. double *A, const blasint *ldA, const double *B, const blasint *ldB,
  57. blasint *info
  58. ) {
  59. RELAPACK_dsygst(itype, uplo, n, A, ldA, B, ldB, info);
  60. }
  61. #endif
  62. #if INCLUDE_CHEGST
  63. void LAPACK(chegst)(
  64. const blasint *itype, const char *uplo, const blasint *n,
  65. float *A, const blasint *ldA, const float *B, const blasint *ldB,
  66. blasint *info
  67. ) {
  68. RELAPACK_chegst(itype, uplo, n, A, ldA, B, ldB, info);
  69. }
  70. #endif
  71. #if INCLUDE_ZHEGST
  72. void LAPACK(zhegst)(
  73. const blasint *itype, const char *uplo, const blasint *n,
  74. double *A, const blasint *ldA, const double *B, const blasint *ldB,
  75. blasint *info
  76. ) {
  77. RELAPACK_zhegst(itype, uplo, n, A, ldA, B, ldB, info);
  78. }
  79. #endif
  80. ////////////
  81. // XTRTRI //
  82. ////////////
  83. #if INCLUDE_STRTRI
  84. void LAPACK(strtri)(
  85. const char *uplo, const char *diag, const blasint *n,
  86. float *A, const blasint *ldA,
  87. blasint *info
  88. ) {
  89. RELAPACK_strtri(uplo, diag, n, A, ldA, info);
  90. }
  91. #endif
  92. #if INCLUDE_DTRTRI
  93. void LAPACK(dtrtri)(
  94. const char *uplo, const char *diag, const blasint *n,
  95. double *A, const blasint *ldA,
  96. blasint *info
  97. ) {
  98. RELAPACK_dtrtri(uplo, diag, n, A, ldA, info);
  99. }
  100. #endif
  101. #if INCLUDE_CTRTRI
  102. void LAPACK(ctrtri)(
  103. const char *uplo, const char *diag, const blasint *n,
  104. float *A, const blasint *ldA,
  105. blasint *info
  106. ) {
  107. RELAPACK_ctrtri(uplo, diag, n, A, ldA, info);
  108. }
  109. #endif
  110. #if INCLUDE_ZTRTRI
  111. void LAPACK(ztrtri)(
  112. const char *uplo, const char *diag, const blasint *n,
  113. double *A, const blasint *ldA,
  114. blasint *info
  115. ) {
  116. RELAPACK_ztrtri(uplo, diag, n, A, ldA, info);
  117. }
  118. #endif
  119. ////////////
  120. // XPOTRF //
  121. ////////////
  122. #if INCLUDE_SPOTRF
  123. void LAPACK(spotrf)(
  124. const char *uplo, const blasint *n,
  125. float *A, const blasint *ldA,
  126. blasint *info
  127. ) {
  128. RELAPACK_spotrf(uplo, n, A, ldA, info);
  129. }
  130. #endif
  131. #if INCLUDE_DPOTRF
  132. void LAPACK(dpotrf)(
  133. const char *uplo, const blasint *n,
  134. double *A, const blasint *ldA,
  135. blasint *info
  136. ) {
  137. RELAPACK_dpotrf(uplo, n, A, ldA, info);
  138. }
  139. #endif
  140. #if INCLUDE_CPOTRF
  141. void LAPACK(cpotrf)(
  142. const char *uplo, const blasint *n,
  143. float *A, const blasint *ldA,
  144. blasint *info
  145. ) {
  146. RELAPACK_cpotrf(uplo, n, A, ldA, info);
  147. }
  148. #endif
  149. #if INCLUDE_ZPOTRF
  150. void LAPACK(zpotrf)(
  151. const char *uplo, const blasint *n,
  152. double *A, const blasint *ldA,
  153. blasint *info
  154. ) {
  155. RELAPACK_zpotrf(uplo, n, A, ldA, info);
  156. }
  157. #endif
  158. ////////////
  159. // XPBTRF //
  160. ////////////
  161. #if INCLUDE_SPBTRF
  162. void LAPACK(spbtrf)(
  163. const char *uplo, const blasint *n, const blasint *kd,
  164. float *Ab, const blasint *ldAb,
  165. blasint *info
  166. ) {
  167. RELAPACK_spbtrf(uplo, n, kd, Ab, ldAb, info);
  168. }
  169. #endif
  170. #if INCLUDE_DPBTRF
  171. void LAPACK(dpbtrf)(
  172. const char *uplo, const blasint *n, const blasint *kd,
  173. double *Ab, const blasint *ldAb,
  174. blasint *info
  175. ) {
  176. RELAPACK_dpbtrf(uplo, n, kd, Ab, ldAb, info);
  177. }
  178. #endif
  179. #if INCLUDE_CPBTRF
  180. void LAPACK(cpbtrf)(
  181. const char *uplo, const blasint *n, const blasint *kd,
  182. float *Ab, const blasint *ldAb,
  183. blasint *info
  184. ) {
  185. RELAPACK_cpbtrf(uplo, n, kd, Ab, ldAb, info);
  186. }
  187. #endif
  188. #if INCLUDE_ZPBTRF
  189. void LAPACK(zpbtrf)(
  190. const char *uplo, const blasint *n, const blasint *kd,
  191. double *Ab, const blasint *ldAb,
  192. blasint *info
  193. ) {
  194. RELAPACK_zpbtrf(uplo, n, kd, Ab, ldAb, info);
  195. }
  196. #endif
  197. ////////////
  198. // XSYTRF //
  199. ////////////
  200. #if INCLUDE_SSYTRF
  201. void LAPACK(ssytrf)(
  202. const char *uplo, const blasint *n,
  203. float *A, const blasint *ldA, blasint *ipiv,
  204. float *Work, const blasint *lWork, blasint *info
  205. ) {
  206. RELAPACK_ssytrf(uplo, n, A, ldA, ipiv, Work, lWork, info);
  207. }
  208. #endif
  209. #if INCLUDE_DSYTRF
  210. void LAPACK(dsytrf)(
  211. const char *uplo, const blasint *n,
  212. double *A, const blasint *ldA, blasint *ipiv,
  213. double *Work, const blasint *lWork, blasint *info
  214. ) {
  215. RELAPACK_dsytrf(uplo, n, A, ldA, ipiv, Work, lWork, info);
  216. }
  217. #endif
  218. #if INCLUDE_CSYTRF
  219. void LAPACK(csytrf)(
  220. const char *uplo, const blasint *n,
  221. float *A, const blasint *ldA, blasint *ipiv,
  222. float *Work, const blasint *lWork, blasint *info
  223. ) {
  224. RELAPACK_csytrf(uplo, n, A, ldA, ipiv, Work, lWork, info);
  225. }
  226. #endif
  227. #if INCLUDE_ZSYTRF
  228. void LAPACK(zsytrf)(
  229. const char *uplo, const blasint *n,
  230. double *A, const blasint *ldA, blasint *ipiv,
  231. double *Work, const blasint *lWork, blasint *info
  232. ) {
  233. RELAPACK_zsytrf(uplo, n, A, ldA, ipiv, Work, lWork, info);
  234. }
  235. #endif
  236. #if INCLUDE_CHETRF
  237. void LAPACK(chetrf)(
  238. const char *uplo, const blasint *n,
  239. float *A, const blasint *ldA, blasint *ipiv,
  240. float *Work, const blasint *lWork, blasint *info
  241. ) {
  242. RELAPACK_chetrf(uplo, n, A, ldA, ipiv, Work, lWork, info);
  243. }
  244. #endif
  245. #if INCLUDE_ZHETRF
  246. void LAPACK(zhetrf)(
  247. const char *uplo, const blasint *n,
  248. double *A, const blasint *ldA, blasint *ipiv,
  249. double *Work, const blasint *lWork, blasint *info
  250. ) {
  251. RELAPACK_zhetrf(uplo, n, A, ldA, ipiv, Work, lWork, info);
  252. }
  253. #endif
  254. #if INCLUDE_SSYTRF_ROOK
  255. void LAPACK(ssytrf_rook)(
  256. const char *uplo, const blasint *n,
  257. float *A, const blasint *ldA, blasint *ipiv,
  258. float *Work, const blasint *lWork, blasint *info
  259. ) {
  260. RELAPACK_ssytrf_rook(uplo, n, A, ldA, ipiv, Work, lWork, info);
  261. }
  262. #endif
  263. #if INCLUDE_DSYTRF_ROOK
  264. void LAPACK(dsytrf_rook)(
  265. const char *uplo, const blasint *n,
  266. double *A, const blasint *ldA, blasint *ipiv,
  267. double *Work, const blasint *lWork, blasint *info
  268. ) {
  269. RELAPACK_dsytrf_rook(uplo, n, A, ldA, ipiv, Work, lWork, info);
  270. }
  271. #endif
  272. #if INCLUDE_CSYTRF_ROOK
  273. void LAPACK(csytrf_rook)(
  274. const char *uplo, const blasint *n,
  275. float *A, const blasint *ldA, blasint *ipiv,
  276. float *Work, const blasint *lWork, blasint *info
  277. ) {
  278. RELAPACK_csytrf_rook(uplo, n, A, ldA, ipiv, Work, lWork, info);
  279. }
  280. #endif
  281. #if INCLUDE_ZSYTRF_ROOK
  282. void LAPACK(zsytrf_rook)(
  283. const char *uplo, const blasint *n,
  284. double *A, const blasint *ldA, blasint *ipiv,
  285. double *Work, const blasint *lWork, blasint *info
  286. ) {
  287. RELAPACK_zsytrf_rook(uplo, n, A, ldA, ipiv, Work, lWork, info);
  288. }
  289. #endif
  290. #if INCLUDE_CHETRF_ROOK
  291. void LAPACK(chetrf_rook)(
  292. const char *uplo, const blasint *n,
  293. float *A, const blasint *ldA, blasint *ipiv,
  294. float *Work, const blasint *lWork, blasint *info
  295. ) {
  296. RELAPACK_chetrf_rook(uplo, n, A, ldA, ipiv, Work, lWork, info);
  297. }
  298. #endif
  299. #if INCLUDE_ZHETRF_ROOK
  300. void LAPACK(zhetrf_rook)(
  301. const char *uplo, const blasint *n,
  302. double *A, const blasint *ldA, blasint *ipiv,
  303. double *Work, const blasint *lWork, blasint *info
  304. ) {
  305. RELAPACK_zhetrf_rook(uplo, n, A, ldA, ipiv, Work, lWork, info);
  306. }
  307. #endif
  308. ////////////
  309. // XGETRF //
  310. ////////////
  311. #if INCLUDE_SGETRF
  312. void LAPACK(sgetrf)(
  313. const blasint *m, const blasint *n,
  314. float *A, const blasint *ldA, blasint *ipiv,
  315. blasint *info
  316. ) {
  317. RELAPACK_sgetrf(m, n, A, ldA, ipiv, info);
  318. }
  319. #endif
  320. #if INCLUDE_DGETRF
  321. void LAPACK(dgetrf)(
  322. const blasint *m, const blasint *n,
  323. double *A, const blasint *ldA, blasint *ipiv,
  324. blasint *info
  325. ) {
  326. RELAPACK_dgetrf(m, n, A, ldA, ipiv, info);
  327. }
  328. #endif
  329. #if INCLUDE_CGETRF
  330. void LAPACK(cgetrf)(
  331. const blasint *m, const blasint *n,
  332. float *A, const blasint *ldA, blasint *ipiv,
  333. blasint *info
  334. ) {
  335. RELAPACK_cgetrf(m, n, A, ldA, ipiv, info);
  336. }
  337. #endif
  338. #if INCLUDE_ZGETRF
  339. void LAPACK(zgetrf)(
  340. const blasint *m, const blasint *n,
  341. double *A, const blasint *ldA, blasint *ipiv,
  342. blasint *info
  343. ) {
  344. RELAPACK_zgetrf(m, n, A, ldA, ipiv, info);
  345. }
  346. #endif
  347. ////////////
  348. // XGBTRF //
  349. ////////////
  350. #if INCLUDE_SGBTRF
  351. void LAPACK(sgbtrf)(
  352. const blasint *m, const blasint *n, const blasint *kl, const blasint *ku,
  353. float *Ab, const blasint *ldAb, blasint *ipiv,
  354. blasint *info
  355. ) {
  356. RELAPACK_sgbtrf(m, n, kl, ku, Ab, ldAb, ipiv, info);
  357. }
  358. #endif
  359. #if INCLUDE_DGBTRF
  360. void LAPACK(dgbtrf)(
  361. const blasint *m, const blasint *n, const blasint *kl, const blasint *ku,
  362. double *Ab, const blasint *ldAb, blasint *ipiv,
  363. blasint *info
  364. ) {
  365. RELAPACK_dgbtrf(m, n, kl, ku, Ab, ldAb, ipiv, info);
  366. }
  367. #endif
  368. #if INCLUDE_CGBTRF
  369. void LAPACK(cgbtrf)(
  370. const blasint *m, const blasint *n, const blasint *kl, const blasint *ku,
  371. float *Ab, const blasint *ldAb, blasint *ipiv,
  372. blasint *info
  373. ) {
  374. RELAPACK_cgbtrf(m, n, kl, ku, Ab, ldAb, ipiv, info);
  375. }
  376. #endif
  377. #if INCLUDE_ZGBTRF
  378. void LAPACK(zgbtrf)(
  379. const blasint *m, const blasint *n, const blasint *kl, const blasint *ku,
  380. double *Ab, const blasint *ldAb, blasint *ipiv,
  381. blasint *info
  382. ) {
  383. RELAPACK_zgbtrf(m, n, kl, ku, Ab, ldAb, ipiv, info);
  384. }
  385. #endif
  386. ////////////
  387. // XTRSYL //
  388. ////////////
  389. #if INCLUDE_STRSYL
  390. void LAPACK(strsyl)(
  391. const char *tranA, const char *tranB, const blasint *isgn,
  392. const blasint *m, const blasint *n,
  393. const float *A, const blasint *ldA, const float *B, const blasint *ldB,
  394. float *C, const blasint *ldC, float *scale,
  395. blasint *info
  396. ) {
  397. RELAPACK_strsyl(tranA, tranB, isgn, m, n, A, ldA, B, ldB, C, ldC, scale, info);
  398. }
  399. #endif
  400. #if INCLUDE_DTRSYL
  401. void LAPACK(dtrsyl)(
  402. const char *tranA, const char *tranB, const blasint *isgn,
  403. const blasint *m, const blasint *n,
  404. const double *A, const blasint *ldA, const double *B, const blasint *ldB,
  405. double *C, const blasint *ldC, double *scale,
  406. blasint *info
  407. ) {
  408. RELAPACK_dtrsyl(tranA, tranB, isgn, m, n, A, ldA, B, ldB, C, ldC, scale, info);
  409. }
  410. #endif
  411. #if INCLUDE_CTRSYL
  412. void LAPACK(ctrsyl)(
  413. const char *tranA, const char *tranB, const blasint *isgn,
  414. const blasint *m, const blasint *n,
  415. const float *A, const blasint *ldA, const float *B, const blasint *ldB,
  416. float *C, const blasint *ldC, float *scale,
  417. blasint *info
  418. ) {
  419. RELAPACK_ctrsyl(tranA, tranB, isgn, m, n, A, ldA, B, ldB, C, ldC, scale, info);
  420. }
  421. #endif
  422. #if INCLUDE_ZTRSYL
  423. void LAPACK(ztrsyl)(
  424. const char *tranA, const char *tranB, const blasint *isgn,
  425. const blasint *m, const blasint *n,
  426. const double *A, const blasint *ldA, const double *B, const blasint *ldB,
  427. double *C, const blasint *ldC, double *scale,
  428. blasint *info
  429. ) {
  430. RELAPACK_ztrsyl(tranA, tranB, isgn, m, n, A, ldA, B, ldB, C, ldC, scale, info);
  431. }
  432. #endif
  433. ////////////
  434. // XTGSYL //
  435. ////////////
  436. #if INCLUDE_STGSYL
  437. void LAPACK(stgsyl)(
  438. const char *trans, const blasint *ijob, const blasint *m, const blasint *n,
  439. const float *A, const blasint *ldA, const float *B, const blasint *ldB,
  440. float *C, const blasint *ldC,
  441. const float *D, const blasint *ldD, const float *E, const blasint *ldE,
  442. float *F, const blasint *ldF,
  443. float *scale, float *dif,
  444. float *Work, const blasint *lWork, blasint *iWork, blasint *info
  445. ) {
  446. RELAPACK_stgsyl(trans, ijob, m, n, A, ldA, B, ldB, C, ldC, D, ldD, E, ldE, F, ldF, scale, dif, Work, lWork, iWork, info);
  447. }
  448. #endif
  449. #if INCLUDE_DTGSYL
  450. void LAPACK(dtgsyl)(
  451. const char *trans, const blasint *ijob, const blasint *m, const blasint *n,
  452. const double *A, const blasint *ldA, const double *B, const blasint *ldB,
  453. double *C, const blasint *ldC,
  454. const double *D, const blasint *ldD, const double *E, const blasint *ldE,
  455. double *F, const blasint *ldF,
  456. double *scale, double *dif,
  457. double *Work, const blasint *lWork, blasint *iWork, blasint *info
  458. ) {
  459. RELAPACK_dtgsyl(trans, ijob, m, n, A, ldA, B, ldB, C, ldC, D, ldD, E, ldE, F, ldF, scale, dif, Work, lWork, iWork, info);
  460. }
  461. #endif
  462. #if INCLUDE_CTGSYL
  463. void LAPACK(ctgsyl)(
  464. const char *trans, const blasint *ijob, const blasint *m, const blasint *n,
  465. const float *A, const blasint *ldA, const float *B, const blasint *ldB,
  466. float *C, const blasint *ldC,
  467. const float *D, const blasint *ldD, const float *E, const blasint *ldE,
  468. float *F, const blasint *ldF,
  469. float *scale, float *dif,
  470. float *Work, const blasint *lWork, blasint *iWork, blasint *info
  471. ) {
  472. RELAPACK_ctgsyl(trans, ijob, m, n, A, ldA, B, ldB, C, ldC, D, ldD, E, ldE, F, ldF, scale, dif, Work, lWork, iWork, info);
  473. }
  474. #endif
  475. #if INCLUDE_ZTGSYL
  476. void LAPACK(ztgsyl)(
  477. const char *trans, const blasint *ijob, const blasint *m, const blasint *n,
  478. const double *A, const blasint *ldA, const double *B, const blasint *ldB,
  479. double *C, const blasint *ldC,
  480. const double *D, const blasint *ldD, const double *E, const blasint *ldE,
  481. double *F, const blasint *ldF,
  482. double *scale, double *dif,
  483. double *Work, const blasint *lWork, blasint *iWork, blasint *info
  484. ) {
  485. RELAPACK_ztgsyl(trans, ijob, m, n, A, ldA, B, ldB, C, ldC, D, ldD, E, ldE, F, ldF, scale, dif, Work, lWork, iWork, info);
  486. }
  487. #endif
  488. ////////////
  489. // XGEMMT //
  490. ////////////
  491. #if INCLUDE_SGEMMT
  492. void LAPACK(sgemmt)(
  493. const char *uplo, const char *transA, const char *transB,
  494. const blasint *n, const blasint *k,
  495. const float *alpha, const float *A, const blasint *ldA,
  496. const float *B, const blasint *ldB,
  497. const float *beta, float *C, const blasint *ldC
  498. ) {
  499. RELAPACK_sgemmt(uplo, transA, transB, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
  500. }
  501. #endif
  502. #if INCLUDE_DGEMMT
  503. void LAPACK(dgemmt)(
  504. const char *uplo, const char *transA, const char *transB,
  505. const blasint *n, const blasint *k,
  506. const double *alpha, const double *A, const blasint *ldA,
  507. const double *B, const blasint *ldB,
  508. const double *beta, double *C, const blasint *ldC
  509. ) {
  510. RELAPACK_dgemmt(uplo, transA, transB, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
  511. }
  512. #endif
  513. #if INCLUDE_CGEMMT
  514. void LAPACK(cgemmt)(
  515. const char *uplo, const char *transA, const char *transB,
  516. const blasint *n, const blasint *k,
  517. const float *alpha, const float *A, const blasint *ldA,
  518. const float *B, const blasint *ldB,
  519. const float *beta, float *C, const blasint *ldC
  520. ) {
  521. RELAPACK_cgemmt(uplo, transA, transB, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
  522. }
  523. #endif
  524. #if INCLUDE_ZGEMMT
  525. void LAPACK(zgemmt)(
  526. const char *uplo, const char *transA, const char *transB,
  527. const blasint *n, const blasint *k,
  528. const double *alpha, const double *A, const blasint *ldA,
  529. const double *B, const blasint *ldB,
  530. const double *beta, double *C, const blasint *ldC
  531. ) {
  532. RELAPACK_zgemmt(uplo, transA, transB, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
  533. }
  534. #endif