int P_dsyev( const char *jobz, const char *uplo, int N, double *A, int LDA, double *W, double *Q, int LDQ ) { PLASMA_enum jz, uo; PLASMA_desc *descT; int info; jz = PlasmaNoVec; if (*jobz != 'N') { jz = PlasmaVec; } if (*uplo == 'U') { uo = PlasmaUpper; } else { uo = PlasmaLower; } PLASMA_Alloc_Workspace_dsyev(N, N, &descT); info = PLASMA_dsyev(jz, uo, N, A, LDA, W, descT, Q, LDQ); PLASMA_Dealloc_Handle_Tile(&descT); return info; }
void PLASMA_DSYEV(PLASMA_enum *jobz, PLASMA_enum *uplo, int *N, double *A, int *LDA, double *W, intptr_t *T, double *Q, int *LDQ, int *INFO) { *INFO = PLASMA_dsyev(*jobz, *uplo, *N, A, *LDA, W, (PLASMA_desc *)(*T), Q, *LDQ); }