summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Xianyi <traits.zhang@gmail.com>2017-07-24 11:45:27 +0800
committerGitHub <noreply@github.com>2017-07-24 11:45:27 +0800
commit468ac3df9efd03d32aaaa428b4d949d895c3f03b (patch)
tree38c963d160f73ce379bac3ce13b64f0fe1f9b951
parent31e086d6a66658e7b04390e69884fe569e0a1e9d (diff)
parent376048156b3ea5774ee2c28d25f7641150b8b1db (diff)
downloadopenblas-468ac3df9efd03d32aaaa428b4d949d895c3f03b.tar.gz
openblas-468ac3df9efd03d32aaaa428b4d949d895c3f03b.tar.bz2
openblas-468ac3df9efd03d32aaaa428b4d949d895c3f03b.zip
Merge pull request #1244 from martin-frbg/micmuc_cimatcopy
Fix complex imatcopy for Trans cases with non-square matrix
-rw-r--r--interface/zimatcopy.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/interface/zimatcopy.c b/interface/zimatcopy.c
index 0bb0e4eed..87964e20d 100644
--- a/interface/zimatcopy.c
+++ b/interface/zimatcopy.c
@@ -125,9 +125,8 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
return;
}
-
#ifdef NEW_IMATCOPY
- if (*lda == *ldb) {
+ if (*lda == *ldb && *cols == *rows) {
if ( order == BlasColMajor )
{
@@ -180,7 +179,7 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
b = malloc(msize);
if ( b == NULL )
{
- printf("Memory alloc failed\n");
+ printf("Memory alloc failed in zimatcopy\n");
exit(1);
}
@@ -205,14 +204,14 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
if ( trans == BlasTrans )
{
OMATCOPY_K_CT(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
- OMATCOPY_K_CN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
+ OMATCOPY_K_CN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
free(b);
return;
}
if ( trans == BlasTransConj )
{
OMATCOPY_K_CTC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
- OMATCOPY_K_CN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
+ OMATCOPY_K_CN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
free(b);
return;
}
@@ -238,14 +237,14 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
if ( trans == BlasTrans )
{
OMATCOPY_K_RT(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
- OMATCOPY_K_RN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
+ OMATCOPY_K_RN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
free(b);
return;
}
if ( trans == BlasTransConj )
{
OMATCOPY_K_RTC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
- OMATCOPY_K_RN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
+ OMATCOPY_K_RN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
free(b);
return;
}