138 if (plasma == NULL) {
153 MT = (M%NB==0) ? (M/NB) : (M/NB+1);
154 NT = (N%NB==0) ? (N/NB) : (N/NB+1);
162 plasma_error(
"PLASMA_cgebrd",
"illegal value of jobvt");
173 if (LDA <
max(1, M)) {
186 ( descT->
m != MT*IB ) || (descT->
n != NT*NB) ) {
191 if (
min(M, N) == 0) {
196 plasma_error(
"PLASMA_cgebrd",
"computing the singular vectors is not supported in this version");
200 plasma_error(
"PLASMA_cgebrd",
"computing the singular vectors is not supported in this version");
207 plasma_cooplap2tile( descA, A, NB, NB, LDA, N, 0, 0, M, N,
plasma_desc_mat_free(&(descA)) );
209 plasma_cooplap2tile( descU, U, NB, NB, LDU, M, 0, 0, M, M,
plasma_desc_mat_free(&(descA));
plasma_desc_mat_free(&(descU)));
212 plasma_cooplap2tile( descVT, VT, NB, NB, LDVT, N, 0, 0, N, N,
plasma_desc_mat_free(&(descA));
plasma_desc_mat_free(&(descU));
plasma_desc_mat_free(&(descVT)));
254 status = sequence->
status;
342 if (plasma == NULL) {
349 status = sequence->
status;
394 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"illegal value of jobu");
398 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"illegal value of jobvt");
401 if (plasma == NULL) {
405 if (sequence == NULL) {
409 if (request == NULL) {
421 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"invalid first descriptor");
425 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"invalid third descriptor");
429 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"invalid fourth descriptor");
433 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"invalid fifth descriptor");
437 if (descA.
nb != descA.
mb) {
438 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"only square tiles supported");
442 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"only square tiles supported");
446 plasma_error(
"PLASMA_cgebrd_Tile_Async",
"computing the singular vectors is not supported in this version");