diff --git a/compute/pzgebrd_ge2gb.c b/compute/pzgebrd_ge2gb.c index 443e5321263b449663717562c44bd6552adc4966..b9d0ec1e631d76f7f383786f194e83fb1f73cf4a 100644 --- a/compute/pzgebrd_ge2gb.c +++ b/compute/pzgebrd_ge2gb.c @@ -25,12 +25,11 @@ **/ #include "control/common.h" -void morse_pzgebrd_ge2gb(MORSE_desc_t A, MORSE_desc_t T, +void morse_pzgebrd_ge2gb(MORSE_desc_t A, MORSE_desc_t T, MORSE_desc_t D, MORSE_sequence_t *sequence, MORSE_request_t *request) { int k; int tempkm, tempkn; - MORSE_desc_t D; if (A.m >= A.n){ for (k = 0; k < A.nt; k++) { tempkm = k == A.mt-1 ? A.m-k*A.mb : A.mb; diff --git a/compute/zgesvd.c b/compute/zgesvd.c index 1f312e2204d62f914f5a5ef3719538c460fcf722..4aea26f51876378bf7435b626237f9c3f31afe1f 100644 --- a/compute/zgesvd.c +++ b/compute/zgesvd.c @@ -460,9 +460,14 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt, NB = descA.mb; LDAB = NB + 1; uplo = M >= N ? MorseUpper : MorseLower; - +#if defined(CHAMELEON_COPY_DIAG) + { + morse_zdesc_alloc(D, A->mb, A->nb, A->m, A->n, 0, 0, A->m, A->n, ); + Dptr = &D; + } +#endif /* Reduction to band */ - morse_pzgebrd_ge2gb( descA, descT, + morse_pzgebrd_ge2gb( descA, descT, D, sequence, request ); /* Allocate band structure */ @@ -552,14 +557,6 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt, subT = NULL; subUVT = NULL; if ( jobu != MorseNoVec ) { -#if defined(CHAMELEON_COPY_DIAG) - { - int n = chameleon_min(A->mt, A->nt) * A->nb; - morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, ); - Dptr = &D; - } -#endif - if ( M < N ){ subA = morse_desc_submatrix(&descA, descA.mb, 0, descA.m-descA.mb, descA.n-descA.nb); subUVT = morse_desc_submatrix(&descU, descU.mb, 0, descU.m-descU.mb, descU.n); @@ -576,14 +573,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt, } if ( jobvt != MorseNoVec ) { -#if defined(CHAMELEON_COPY_DIAG) - { - int m = chameleon_min(A->mt, A->nt) * A->mb; - morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, ); - Dptr = &D; - } -#endif - if ( M < N ){ + if ( M < N ){ morse_pzunmlq( MorseRight, MorseNoTrans, &descA, &descVT, &descT, Dptr, sequence, request );