13 #include "common_magma.h"
16 cuDoubleComplex alpha, cuDoubleComplex *db,
magma_int_t lddb,
19 magma_ztrmm(side, uplo, trans, unit, n, m, alpha, db, lddb, dz, lddz);
24 cuDoubleComplex alpha, cuDoubleComplex *db,
magma_int_t lddb,
27 magma_ztrsm(side, uplo, trans, unit, n, m, alpha, db, lddb, dz, lddz);
200 char uplo_[2] = {
uplo, 0};
201 char jobz_[2] = {jobz, 0};
202 char range_[2] = {range, 0};
214 static char trans[1];
221 static cudaStream_t stream;
229 lquery = lwork == -1;
232 if (itype < 1 || itype > 3) {
234 }
else if (! (alleig || valeig || indeig)) {
242 }
else if (lda <
max(1,n)) {
244 }
else if (ldb <
max(1,n)) {
246 }
else if (ldz < 1 || wantz && ldz < n) {
250 if (n > 0 && vu <= vl) {
254 if (il < 1 || il >
max(1,n)) {
256 }
else if (iu <
min(n,il) || iu > n) {
264 lwmin = n * (nb + 1);
269 if (lwork < lwmin && ! lquery) {
316 magma_zheevx_gpu(jobz, range, uplo, n, da, ldda, vl, vu, il, iu, abstol, m, w, dz, lddz, a, lda, z, ldz, work, lwork, rwork, iwork, ifail, info);
318 if (wantz && *info == 0) {
322 if (itype == 1 || itype == 2) {
333 Mymagma_ztrsm(
MagmaLeft, uplo, *trans,
MagmaNonUnit, n, *m, c_one, db, lddb, dz, lddz);
335 }
else if (itype == 3) {
346 Mymagma_ztrmm(
MagmaLeft, uplo, *trans,
MagmaNonUnit, n, *m, c_one, db, lddb, dz, lddz);