Commit a978e988 authored by PRUVOST Florent's avatar PRUVOST Florent
Browse files

update from plasma 2.8.0

parent bb440284
......@@ -92,7 +92,7 @@ void morse_pzher2k(MORSE_enum uplo, MORSE_enum trans,
&options,
trans, MorseConjTrans,
tempmm, tempnn, tempkn, A->mb,
alpha, A(m, k), ldam, /* ldam * K */
conj(alpha), A(m, k), ldam, /* ldam * K */
B(n, k), ldbn, /* ldan * K */
zbeta, C(m, n), ldcm); /* ldc * N */
......@@ -129,7 +129,7 @@ void morse_pzher2k(MORSE_enum uplo, MORSE_enum trans,
&options,
trans, MorseConjTrans,
tempnn, tempmm, tempkn, A->mb,
alpha, B(n, k), ldan, /* ldan * K */
conj(alpha), B(n, k), ldan, /* ldan * K */
A(m, k), ldam, /* ldam * M */
zone, C(n, m), ldcn); /* ldc * M */
}
......@@ -206,7 +206,7 @@ void morse_pzher2k(MORSE_enum uplo, MORSE_enum trans,
&options,
trans, MorseNoTrans,
tempnn, tempmm, tempkm, A->mb,
alpha, B(k, n), ldbk, /* lda * K */
conj(alpha), B(k, n), ldbk, /* lda * K */
A(k, m), ldak, /* lda * M */
zone, C(n, m), ldcn); /* ldc * M */
}
......
......@@ -45,7 +45,7 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
MORSE_option_t options;
int k, m, n;
int lda, ldak, ldb, ldbk;
int ldak, ldam, ldan, ldbk, ldbm;
int tempkm, tempkn, tempmm, tempnn;
MORSE_Complex64_t zone = (MORSE_Complex64_t)1.0;
......@@ -62,16 +62,16 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
if (trans == MorseNoTrans) {
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
lda = BLKLDD(A, m);
ldbm = BLKLDD(B, m);
ldam = BLKLDD(A, m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(m, m), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(m, m), ldam, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = m+1; k < A->mt; k++) {
tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
......@@ -80,9 +80,9 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
&options,
trans, MorseNoTrans,
tempmm, tempnn, tempkn, A->mb,
alpha, A(m, k), lda,
alpha, A(m, k), ldam,
B(k, n), ldbk,
zone, B(m, n), ldb);
zone, B(m, n), ldbm);
}
}
}
......@@ -93,25 +93,27 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
else {
for (m = B->mt-1; m > -1; m--) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
lda = BLKLDD(A, m);
ldbm = BLKLDD(B, m);
ldam = BLKLDD(A, m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(m, m), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(m, m), ldam, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = 0; k < m; k++) {
ldbk = BLKLDD(B, k);
ldak = BLKLDD(A, k);
MORSE_TASK_zgemm(
&options,
trans, MorseNoTrans,
tempmm, tempnn, B->mb, A->mb,
alpha, A(k, m), A->mb,
B(k, n), B->mb,
zone, B(m, n), ldb);
alpha, A(k, m), ldak,
B(k, n), ldbk,
zone, B(m, n), ldbm);
}
}
}
......@@ -124,25 +126,26 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
if (trans == MorseNoTrans) {
for (m = B->mt-1; m > -1; m--) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
lda = BLKLDD(A, m);
ldbm = BLKLDD(B, m);
ldam = BLKLDD(A, m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(m, m), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(m, m), ldam, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = 0; k < m; k++) {
ldbk = BLKLDD(B, k);
MORSE_TASK_zgemm(
&options,
trans, MorseNoTrans,
tempmm, tempnn, B->mb, A->mb,
alpha, A(m, k), lda,
B(k, n), B->mb,
zone, B(m, n), ldb);
alpha, A(m, k), ldam,
B(k, n), ldbk,
zone, B(m, n), ldbm);
}
}
}
......@@ -153,16 +156,16 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
else {
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
lda = BLKLDD(A, m);
ldbm = BLKLDD(B, m);
ldam = BLKLDD(A, m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(m, m), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(m, m), ldam, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = m+1; k < A->mt; k++) {
tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
......@@ -174,7 +177,7 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
tempmm, tempnn, tempkm, A->mb,
alpha, A(k, m), ldak,
B(k, n), ldbk,
zone, B(m, n), ldb);
zone, B(m, n), ldbm);
}
}
}
......@@ -189,25 +192,26 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
if (trans == MorseNoTrans) {
for (n = B->nt-1; n > -1; n--) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
lda = BLKLDD(A, n);
ldan = BLKLDD(A, n);
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(n, n), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(n, n), ldan, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = 0; k < n; k++) {
ldak = BLKLDD(A, k);
MORSE_TASK_zgemm(
&options,
MorseNoTrans, trans,
tempmm, tempnn, B->mb, A->mb,
alpha, B(m, k), ldb,
A(k, n), A->mb,
zone, B(m, n), ldb);
alpha, B(m, k), ldbm,
A(k, n), ldak,
zone, B(m, n), ldbm);
}
}
}
......@@ -218,16 +222,16 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
else {
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
lda = BLKLDD(A, n);
ldan = BLKLDD(A, n);
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(n, n), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(n, n), ldan, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = n+1; k < A->mt; k++) {
tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
......@@ -235,9 +239,9 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
&options,
MorseNoTrans, trans,
tempmm, tempnn, tempkn, A->mb,
alpha, B(m, k), ldb,
A(n, k), lda,
zone, B(m, n), ldb);
alpha, B(m, k), ldbm,
A(n, k), ldan,
zone, B(m, n), ldbm);
}
}
}
......@@ -250,16 +254,16 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
if (trans == MorseNoTrans) {
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
lda = BLKLDD(A, n);
ldan = BLKLDD(A, n);
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(n, n), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(n, n), ldan, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = n+1; k < A->mt; k++) {
tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
......@@ -268,9 +272,9 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
&options,
MorseNoTrans, trans,
tempmm, tempnn, tempkn, A->mb,
alpha, B(m, k), ldb,
alpha, B(m, k), ldbm,
A(k, n), ldak,
zone, B(m, n), ldb);
zone, B(m, n), ldbm);
}
}
}
......@@ -281,25 +285,25 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo,
else {
for (n = B->nt-1; n > -1; n--) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
lda = BLKLDD(A, n);
ldan = BLKLDD(A, n);
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrmm(
&options,
side, uplo, trans, diag,
tempmm, tempnn, A->mb,
alpha, A(n, n), lda, /* lda * tempkm */
B(m, n), ldb); /* ldb * tempnn */
alpha, A(n, n), ldan, /* lda * tempkm */
B(m, n), ldbm); /* ldb * tempnn */
for (k = 0; k < n; k++) {
MORSE_TASK_zgemm(
&options,
MorseNoTrans, trans,
tempmm, tempnn, B->mb, A->mb,
alpha, B(m, k), ldb,
A(n, k), lda,
zone, B(m, n), ldb);
alpha, B(m, k), ldbm,
A(n, k), ldan,
zone, B(m, n), ldbm);
}
}
}
......
/**
*
* @copyright (c) 2009-2014 The University of Tennessee and The University
* @copyright (c) 2009-2015 The University of Tennessee and The University
* of Tennessee Research Foundation.
* All rights reserved.
* @copyright (c) 2012-2014 Inria. All rights reserved.
* @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
* @copyright (c) 2012-2016 Inria. All rights reserved.
* @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
*
**/
......@@ -43,7 +43,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
MORSE_option_t options;
int k, m, n;
int lda, ldan, ldb;
int ldak, ldam, ldan, ldbk, ldbm;
int tempkm, tempkn, tempmm, tempnn;
MORSE_Complex64_t zone = (MORSE_Complex64_t) 1.0;
......@@ -63,8 +63,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
if (trans == MorseNoTrans) {
for (k = 0; k < B->mt; k++) {
tempkm = k == 0 ? B->m-(B->mt-1)*B->mb : B->mb;
lda = BLKLDD(A, B->mt-1-k);
ldb = BLKLDD(B, B->mt-1-k);
ldak = BLKLDD(A, B->mt-1-k);
ldbk = BLKLDD(B, B->mt-1-k);
lalpha = k == 0 ? alpha : zone;
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
......@@ -72,21 +72,22 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
&options,
side, uplo, trans, diag,
tempkm, tempnn, A->mb,
lalpha, A(B->mt-1-k, B->mt-1-k), lda, /* lda * tempkm */
B(B->mt-1-k, n), ldb); /* ldb * tempnn */
lalpha, A(B->mt-1-k, B->mt-1-k), ldak, /* lda * tempkm */
B(B->mt-1-k, n), ldbk); /* ldb * tempnn */
}
MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) );
for (m = k+1; m < B->mt; m++) {
ldam = BLKLDD(A, B->mt-1-m);
ldbm = BLKLDD(B, B->mt-1-m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_zgemm(
&options,
MorseNoTrans, MorseNoTrans,
B->mb, tempnn, tempkm, A->mb,
mzone, A(B->mt-1-m, B->mt-1-k), A->mb,
B(B->mt-1-k, n ), ldb,
lalpha, B(B->mt-1-m, n ), B->mb);
mzone, A(B->mt-1-m, B->mt-1-k), ldam,
B(B->mt-1-k, n ), ldbk,
lalpha, B(B->mt-1-m, n ), ldbm);
}
MORSE_TASK_dataflush( &options, A(B->mt-1-m, B->mt-1-k) );
}
......@@ -101,8 +102,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
else {
for (k = 0; k < B->mt; k++) {
tempkm = k == B->mt-1 ? B->m-k*B->mb : B->mb;
lda = BLKLDD(A, k);
ldb = BLKLDD(B, k);
ldak = BLKLDD(A, k);
ldbk = BLKLDD(B, k);
lalpha = k == 0 ? alpha : zone;
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
......@@ -110,29 +111,29 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
&options,
side, uplo, trans, diag,
tempkm, tempnn, A->mb,
lalpha, A(k, k), lda,
B(k, n), ldb);
lalpha, A(k, k), ldak,
B(k, n), ldbk);
}
MORSE_TASK_dataflush( &options, A(k, k) );
for (m = k+1; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_zgemm(
&options,
trans, MorseNoTrans,
tempmm, tempnn, B->mb, A->mb,
mzone, A(k, m), A->mb,
B(k, n), B->mb,
lalpha, B(m, n), ldb);
mzone, A(k, m), ldak,
B(k, n), ldbk,
lalpha, B(m, n), ldbm);
}
MORSE_TASK_dataflush( &options, A(k, m) );
}
for (n = 0; n < B->nt; n++) {
MORSE_TASK_dataflush( &options, B(k, n) );
}
}
}
}
......@@ -143,8 +144,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
if (trans == MorseNoTrans) {
for (k = 0; k < B->mt; k++) {
tempkm = k == B->mt-1 ? B->m-k*B->mb : B->mb;
lda = BLKLDD(A, k);
ldb = BLKLDD(B, k);
ldak = BLKLDD(A, k);
ldbk = BLKLDD(B, k);
lalpha = k == 0 ? alpha : zone;
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
......@@ -152,24 +153,23 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
&options,
side, uplo, trans, diag,
tempkm, tempnn, A->mb,
lalpha, A(k, k), lda,
B(k, n), ldb);
lalpha, A(k, k), ldak,
B(k, n), ldbk);
}
MORSE_TASK_dataflush( &options, A(k, k) );
for (m = k+1; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
lda = BLKLDD(A, m);
ldb = BLKLDD(B, m);
ldam = BLKLDD(A, m);
ldbm = BLKLDD(B, m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_zgemm(
&options,
MorseNoTrans, MorseNoTrans,
tempmm, tempnn, B->mb, A->mb,
mzone, A(m, k), lda,
B(k, n), B->mb,
lalpha, B(m, n), ldb);
mzone, A(m, k), ldam,
B(k, n), ldbk,
lalpha, B(m, n), ldbm);
}
MORSE_TASK_dataflush( &options, A(m, k) );
}
......@@ -184,8 +184,8 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
else {
for (k = 0; k < B->mt; k++) {
tempkm = k == 0 ? B->m-(B->mt-1)*B->mb : B->mb;
lda = BLKLDD(A, B->mt-1-k);
ldb = BLKLDD(B, B->mt-1-k);
ldak = BLKLDD(A, B->mt-1-k);
ldbk = BLKLDD(B, B->mt-1-k);
lalpha = k == 0 ? alpha : zone;
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
......@@ -193,22 +193,22 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
&options,
side, uplo, trans, diag,
tempkm, tempnn, A->mb,
lalpha, A(B->mt-1-k, B->mt-1-k), lda,
B(B->mt-1-k, n), ldb);
lalpha, A(B->mt-1-k, B->mt-1-k), ldak,
B(B->mt-1-k, n), ldbk);
}
MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-k) );
for (m = k+1; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldbm = BLKLDD(B, B->mt-1-m);
for (n = 0; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_zgemm(
&options,
trans, MorseNoTrans,
B->mb, tempnn, tempkm, A->mb,
mzone, A(B->mt-1-k, B->mt-1-m), lda,
B(B->mt-1-k, n ), ldb,
lalpha, B(B->mt-1-m, n ), B->mb);
mzone, A(B->mt-1-k, B->mt-1-m), ldak,
B(B->mt-1-k, n ), ldbk,
lalpha, B(B->mt-1-m, n ), ldbm);
}
MORSE_TASK_dataflush( &options, A(B->mt-1-k, B->mt-1-m) );
}
......@@ -227,32 +227,31 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
if (trans == MorseNoTrans) {
for (k = 0; k < B->nt; k++) {
tempkn = k == B->nt-1 ? B->n-k*B->nb : B->nb;
lda = BLKLDD(A, k);
ldak = BLKLDD(A, k);
lalpha = k == 0 ? alpha : zone;
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrsm(
&options,
side, uplo, trans, diag,
tempmm, tempkn, A->mb,
lalpha, A(k, k), lda, /* lda * tempkn */
B(m, k), ldb); /* ldb * tempkn */
lalpha, A(k, k), ldak, /* lda * tempkn */
B(m, k), ldbm); /* ldb * tempkn */
}
MORSE_TASK_dataflush( &options, A(k, k) );
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
for (n = k+1; n < B->nt; n++) {
tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
MORSE_TASK_zgemm(
&options,
MorseNoTrans, MorseNoTrans,
tempmm, tempnn, B->mb, A->mb,
mzone, B(m, k), ldb, /* ldb * B->mb */
A(k, n), lda, /* lda * tempnn */
lalpha, B(m, n), ldb); /* ldb * tempnn */
mzone, B(m, k), ldbm, /* ldb * B->mb */
A(k, n), ldak, /* lda * tempnn */
lalpha, B(m, n), ldbm); /* ldb * tempnn */
}
MORSE_TASK_dataflush( &options, B(m, k) );
}
......@@ -267,26 +266,27 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
else {
for (k = 0; k < B->nt; k++) {
tempkn = k == 0 ? B->n-(B->nt-1)*B->nb : B->nb;
lda = BLKLDD(A, B->nt-1-k);
ldak = BLKLDD(A, B->nt-1-k);
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrsm(
&options,
side, uplo, trans, diag,
tempmm, tempkn, A->mb,
alpha, A(B->nt-1-k, B->nt-1-k), lda, /* lda * tempkn */
B( m, B->nt-1-k), ldb); /* ldb * tempkn */
alpha, A(B->nt-1-k, B->nt-1-k), ldak, /* lda * tempkn */
B( m, B->nt-1-k), ldbm); /* ldb * tempkn */
MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-k) );
for (n = k+1; n < B->nt; n++) {
ldan = BLKLDD(A, B->nt-1-n);
MORSE_TASK_zgemm(
&options,
MorseNoTrans, trans,
tempmm, B->nb, tempkn, A->mb,
minvalpha, B(m, B->nt-1-k), ldb, /* ldb * tempkn */
A(B->nt-1-n, B->nt-1-k), A->mb, /* A->mb * tempkn (Never last row) */
zone, B(m, B->nt-1-n), ldb); /* ldb * B->nb */
minvalpha, B(m, B->nt-1-k), ldbm, /* ldb * tempkn */
A(B->nt-1-n, B->nt-1-k), ldan, /* A->mb * tempkn (Never last row) */
zone, B(m, B->nt-1-n), ldbm); /* ldb * B->nb */
}
MORSE_TASK_dataflush( &options, B(m, B->nt-1-k) );
}
......@@ -303,17 +303,17 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum
if (trans == MorseNoTrans) {
for (k = 0; k < B->nt; k++) {
tempkn = k == 0 ? B->n-(B->nt-1)*B->nb : B->nb;
lda = BLKLDD(A, B->nt-1-k);
ldak = BLKLDD(A, B->nt-1-k);
lalpha = k == 0 ? alpha : zone;
for (m = 0; m < B->mt; m++) {
tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb;
ldb = BLKLDD(B, m);
ldbm = BLKLDD(B, m);
MORSE_TASK_ztrsm(
&options,
side, uplo, trans, diag,
tempmm, tempkn, A->mb,
lalpha, A(B->nt-1-k, B->nt-1-k), lda, /* lda * tempkn */
B( m, B->nt-1-k), ldb); /* ldb * tempkn */
lalpha, A(B->nt-1-k, B->nt-1-k), ldak, /* lda * tempkn */
B( m, B->nt-1-k), ldbm); /* ldb * tempkn */
MORSE_TASK_dataflush( &options, A(B->nt-1-k, B->nt-1-k) );