Skip to content

Commit 468ac3d

Browse files
authored
Merge pull request #1244 from martin-frbg/micmuc_cimatcopy
Fix complex imatcopy for Trans cases with non-square matrix
2 parents 31e086d + 3760481 commit 468ac3d

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

interface/zimatcopy.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,8 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
125125
BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
126126
return;
127127
}
128-
129128
#ifdef NEW_IMATCOPY
130-
if (*lda == *ldb) {
129+
if (*lda == *ldb && *cols == *rows) {
131130
if ( order == BlasColMajor )
132131
{
133132

@@ -180,7 +179,7 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
180179
b = malloc(msize);
181180
if ( b == NULL )
182181
{
183-
printf("Memory alloc failed\n");
182+
printf("Memory alloc failed in zimatcopy\n");
184183
exit(1);
185184
}
186185

@@ -205,14 +204,14 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
205204
if ( trans == BlasTrans )
206205
{
207206
OMATCOPY_K_CT(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
208-
OMATCOPY_K_CN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
207+
OMATCOPY_K_CN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
209208
free(b);
210209
return;
211210
}
212211
if ( trans == BlasTransConj )
213212
{
214213
OMATCOPY_K_CTC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
215-
OMATCOPY_K_CN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
214+
OMATCOPY_K_CN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
216215
free(b);
217216
return;
218217
}
@@ -238,14 +237,14 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
238237
if ( trans == BlasTrans )
239238
{
240239
OMATCOPY_K_RT(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
241-
OMATCOPY_K_RN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
240+
OMATCOPY_K_RN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
242241
free(b);
243242
return;
244243
}
245244
if ( trans == BlasTransConj )
246245
{
247246
OMATCOPY_K_RTC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
248-
OMATCOPY_K_RN(*rows, *cols, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
247+
OMATCOPY_K_RN(*cols, *rows, (FLOAT) 1.0, (FLOAT) 0.0 , b, *ldb, a, *ldb );
249248
free(b);
250249
return;
251250
}

0 commit comments

Comments
 (0)