Skip to content

Commit b014222

Browse files
Tests for cblas_cgemmt
1 parent d087091 commit b014222

File tree

7 files changed

+901
-21
lines changed

7 files changed

+901
-21
lines changed

CBLAS/include/cblas.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ void cblas_cgemm(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE TransA,
544544
const CBLAS_INT lda, const void *B, const CBLAS_INT ldb,
545545
const void *beta, void *C, const CBLAS_INT ldc);
546546
void cblas_cgemmt(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
547-
CBLAS_TRANSPOSE TransB, const CBLAS_INT M, const CBLAS_INT N,
547+
CBLAS_TRANSPOSE TransB, const CBLAS_INT N,
548548
const CBLAS_INT K, const void *alpha, const void *A,
549549
const CBLAS_INT lda, const void *B, const CBLAS_INT ldb,
550550
const void *beta, void *C, const CBLAS_INT ldc);

CBLAS/src/cblas_cgemm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ void API_SUFFIX(cblas_cgemm)(const CBLAS_LAYOUT layout, const CBLAS_TRANSPOSE Tr
8989
else if ( TransB == CblasNoTrans ) TA='N';
9090
else
9191
{
92-
API_SUFFIX(cblas_xerbla)(3, "cblas_cgemm", "Illegal TransB setting, %d\n", TransB);
92+
API_SUFFIX(cblas_xerbla)(2, "cblas_cgemm", "Illegal TransB setting, %d\n", TransB);
9393
CBLAS_CallFromC = 0;
9494
RowMajorStrg = 0;
9595
return;

CBLAS/src/cblas_cgemmt.c

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#include "cblas.h"
1111
#include "cblas_f77.h"
12-
void API_SUFFIX(cblas_cgemm_t)(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE TransA,
12+
void API_SUFFIX(cblas_cgemmt)(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE TransA,
1313
const CBLAS_TRANSPOSE TransB, const CBLAS_INT N,
1414
const CBLAS_INT K, const void *alpha, const void *A,
1515
const CBLAS_INT lda, const void *B, const CBLAS_INT ldb,
@@ -41,17 +41,18 @@ void API_SUFFIX(cblas_cgemm_t)(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo,
4141
RowMajorStrg = 0;
4242
CBLAS_CallFromC = 1;
4343

44-
if ( Uplo == CblasUpper ) UL = 'U';
45-
else if (Uplo == CblasLower) UL= 'L';
46-
else {
47-
API_SUFFIX(cblas_xerbla)(2, "cblas_cgemmt", "Illegal Uplo setting, %d\n", Uplo);
48-
CBLAS_CallFromC = 0;
49-
RowMajorStrg = 0;
50-
return;
51-
}
5244

5345
if( layout == CblasColMajor )
5446
{
47+
if ( Uplo == CblasUpper ) UL = 'U';
48+
else if (Uplo == CblasLower) UL= 'L';
49+
else {
50+
API_SUFFIX(cblas_xerbla)(2, "cblas_cgemmt", "Illegal Uplo setting, %d\n", Uplo);
51+
CBLAS_CallFromC = 0;
52+
RowMajorStrg = 0;
53+
return;
54+
}
55+
5556
if(TransA == CblasTrans) TA='T';
5657
else if ( TransA == CblasConjTrans ) TA='C';
5758
else if ( TransA == CblasNoTrans ) TA='N';
@@ -85,6 +86,16 @@ void API_SUFFIX(cblas_cgemm_t)(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo,
8586
} else if (layout == CblasRowMajor)
8687
{
8788
RowMajorStrg = 1;
89+
90+
if ( Uplo == CblasUpper ) UL = 'L';
91+
else if (Uplo == CblasLower) UL= 'U';
92+
else {
93+
API_SUFFIX(cblas_xerbla)(2, "cblas_cgemmt", "Illegal Uplo setting, %d\n", Uplo);
94+
CBLAS_CallFromC = 0;
95+
RowMajorStrg = 0;
96+
return;
97+
}
98+
8899
if(TransA == CblasTrans) TB='T';
89100
else if ( TransA == CblasConjTrans ) TB='C';
90101
else if ( TransA == CblasNoTrans ) TB='N';

CBLAS/testing/c_c3chke.c

Lines changed: 227 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,233 @@ void F77_c3chke(char * rout) {
274274
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, 2, 0,
275275
ALPHA, A, 1, B, 1, BETA, C, 1 );
276276
chkxer();
277+
} else if (strncmp( sf,"cblas_cgemmt" ,12)==0) {
278+
cblas_rout = "cblas_cgemmt" ;
279+
280+
cblas_info = 1;
281+
cblas_cgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
282+
ALPHA, A, 1, B, 1, BETA, C, 1 );
283+
chkxer();
284+
cblas_info = 1;
285+
cblas_cgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
286+
ALPHA, A, 1, B, 1, BETA, C, 1 );
287+
chkxer();
288+
cblas_info = 1;
289+
cblas_cgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
290+
ALPHA, A, 1, B, 1, BETA, C, 1 );
291+
chkxer();
292+
cblas_info = 1;
293+
cblas_cgemm( INVALID, CblasTrans, CblasTrans, 0, 0, 0,
294+
ALPHA, A, 1, B, 1, BETA, C, 1 );
295+
chkxer();
296+
cblas_info = 2; RowMajorStrg = FALSE;
297+
cblas_cgemm( CblasColMajor, INVALID, CblasNoTrans, 0, 0, 0,
298+
ALPHA, A, 1, B, 1, BETA, C, 1 );
299+
chkxer();
300+
cblas_info = 2; RowMajorStrg = FALSE;
301+
cblas_cgemm( CblasColMajor, INVALID, CblasTrans, 0, 0, 0,
302+
ALPHA, A, 1, B, 1, BETA, C, 1 );
303+
chkxer();
304+
cblas_info = 3; RowMajorStrg = FALSE;
305+
cblas_cgemm( CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
306+
ALPHA, A, 1, B, 1, BETA, C, 1 );
307+
chkxer();
308+
cblas_info = 3; RowMajorStrg = FALSE;
309+
cblas_cgemm( CblasColMajor, CblasTrans, INVALID, 0, 0, 0,
310+
ALPHA, A, 1, B, 1, BETA, C, 1 );
311+
chkxer();
312+
cblas_info = 4; RowMajorStrg = FALSE;
313+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, INVALID, 0, 0,
314+
ALPHA, A, 1, B, 1, BETA, C, 1 );
315+
chkxer();
316+
cblas_info = 4; RowMajorStrg = FALSE;
317+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasTrans, INVALID, 0, 0,
318+
ALPHA, A, 1, B, 1, BETA, C, 1 );
319+
chkxer();
320+
cblas_info = 4; RowMajorStrg = FALSE;
321+
cblas_cgemm( CblasColMajor, CblasTrans, CblasNoTrans, INVALID, 0, 0,
322+
ALPHA, A, 1, B, 1, BETA, C, 1 );
323+
chkxer();
324+
cblas_info = 4; RowMajorStrg = FALSE;
325+
cblas_cgemm( CblasColMajor, CblasTrans, CblasTrans, INVALID, 0, 0,
326+
ALPHA, A, 1, B, 1, BETA, C, 1 );
327+
chkxer();
328+
cblas_info = 5; RowMajorStrg = FALSE;
329+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, 0, INVALID, 0,
330+
ALPHA, A, 1, B, 1, BETA, C, 1 );
331+
chkxer();
332+
cblas_info = 5; RowMajorStrg = FALSE;
333+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasTrans, 0, INVALID, 0,
334+
ALPHA, A, 1, B, 1, BETA, C, 1 );
335+
chkxer();
336+
cblas_info = 5; RowMajorStrg = FALSE;
337+
cblas_cgemm( CblasColMajor, CblasTrans, CblasNoTrans, 0, INVALID, 0,
338+
ALPHA, A, 1, B, 1, BETA, C, 1 );
339+
chkxer();
340+
cblas_info = 5; RowMajorStrg = FALSE;
341+
cblas_cgemm( CblasColMajor, CblasTrans, CblasTrans, 0, INVALID, 0,
342+
ALPHA, A, 1, B, 1, BETA, C, 1 );
343+
chkxer();
344+
cblas_info = 6; RowMajorStrg = FALSE;
345+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, 0, 0, INVALID,
346+
ALPHA, A, 1, B, 1, BETA, C, 1 );
347+
chkxer();
348+
cblas_info = 6; RowMajorStrg = FALSE;
349+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasTrans, 0, 0, INVALID,
350+
ALPHA, A, 1, B, 1, BETA, C, 1 );
351+
chkxer();
352+
cblas_info = 6; RowMajorStrg = FALSE;
353+
cblas_cgemm( CblasColMajor, CblasTrans, CblasNoTrans, 0, 0, INVALID,
354+
ALPHA, A, 1, B, 1, BETA, C, 1 );
355+
chkxer();
356+
cblas_info = 6; RowMajorStrg = FALSE;
357+
cblas_cgemm( CblasColMajor, CblasTrans, CblasTrans, 0, 0, INVALID,
358+
ALPHA, A, 1, B, 1, BETA, C, 1 );
359+
chkxer();
360+
cblas_info = 9; RowMajorStrg = FALSE;
361+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, 2, 0, 0,
362+
ALPHA, A, 1, B, 1, BETA, C, 2 );
363+
chkxer();
364+
cblas_info = 9; RowMajorStrg = FALSE;
365+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasTrans, 2, 0, 0,
366+
ALPHA, A, 1, B, 1, BETA, C, 2 );
367+
chkxer();
368+
cblas_info = 9; RowMajorStrg = FALSE;
369+
cblas_cgemm( CblasColMajor, CblasTrans, CblasNoTrans, 0, 0, 2,
370+
ALPHA, A, 1, B, 2, BETA, C, 1 );
371+
chkxer();
372+
cblas_info = 9; RowMajorStrg = FALSE;
373+
cblas_cgemm( CblasColMajor, CblasTrans, CblasTrans, 0, 0, 2,
374+
ALPHA, A, 1, B, 1, BETA, C, 1 );
375+
chkxer();
376+
cblas_info = 11; RowMajorStrg = FALSE;
377+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, 0, 0, 2,
378+
ALPHA, A, 1, B, 1, BETA, C, 1 );
379+
chkxer();
380+
cblas_info = 11; RowMajorStrg = FALSE;
381+
cblas_cgemm( CblasColMajor, CblasTrans, CblasNoTrans, 0, 0, 2,
382+
ALPHA, A, 2, B, 1, BETA, C, 1 );
383+
chkxer();
384+
cblas_info = 11; RowMajorStrg = FALSE;
385+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasTrans, 0, 2, 0,
386+
ALPHA, A, 1, B, 1, BETA, C, 1 );
387+
chkxer();
388+
cblas_info = 11; RowMajorStrg = FALSE;
389+
cblas_cgemm( CblasColMajor, CblasTrans, CblasTrans, 0, 2, 0,
390+
ALPHA, A, 1, B, 1, BETA, C, 1 );
391+
chkxer();
392+
cblas_info = 14; RowMajorStrg = FALSE;
393+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, 2, 0, 0,
394+
ALPHA, A, 2, B, 1, BETA, C, 1 );
395+
chkxer();
396+
cblas_info = 14; RowMajorStrg = FALSE;
397+
cblas_cgemm( CblasColMajor, CblasNoTrans, CblasTrans, 2, 0, 0,
398+
ALPHA, A, 2, B, 1, BETA, C, 1 );
399+
chkxer();
400+
cblas_info = 14; RowMajorStrg = FALSE;
401+
cblas_cgemm( CblasColMajor, CblasTrans, CblasNoTrans, 2, 0, 0,
402+
ALPHA, A, 1, B, 1, BETA, C, 1 );
403+
chkxer();
404+
cblas_info = 14; RowMajorStrg = FALSE;
405+
cblas_cgemm( CblasColMajor, CblasTrans, CblasTrans, 2, 0, 0,
406+
ALPHA, A, 1, B, 1, BETA, C, 1 );
407+
chkxer();
408+
cblas_info = 4; RowMajorStrg = TRUE;
409+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, INVALID, 0, 0,
410+
ALPHA, A, 1, B, 1, BETA, C, 1 );
411+
chkxer();
412+
cblas_info = 4; RowMajorStrg = TRUE;
413+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasTrans, INVALID, 0, 0,
414+
ALPHA, A, 1, B, 1, BETA, C, 1 );
415+
chkxer();
416+
cblas_info = 4; RowMajorStrg = TRUE;
417+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasNoTrans, INVALID, 0, 0,
418+
ALPHA, A, 1, B, 1, BETA, C, 1 );
419+
chkxer();
420+
cblas_info = 4; RowMajorStrg = TRUE;
421+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, INVALID, 0, 0,
422+
ALPHA, A, 1, B, 1, BETA, C, 1 );
423+
chkxer();
424+
cblas_info = 5; RowMajorStrg = TRUE;
425+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, INVALID, 0,
426+
ALPHA, A, 1, B, 1, BETA, C, 1 );
427+
chkxer();
428+
cblas_info = 5; RowMajorStrg = TRUE;
429+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, INVALID, 0,
430+
ALPHA, A, 1, B, 1, BETA, C, 1 );
431+
chkxer();
432+
cblas_info = 5; RowMajorStrg = TRUE;
433+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasNoTrans, 0, INVALID, 0,
434+
ALPHA, A, 1, B, 1, BETA, C, 1 );
435+
chkxer();
436+
cblas_info = 5; RowMajorStrg = TRUE;
437+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, INVALID, 0,
438+
ALPHA, A, 1, B, 1, BETA, C, 1 );
439+
chkxer();
440+
cblas_info = 6; RowMajorStrg = TRUE;
441+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 0, INVALID,
442+
ALPHA, A, 1, B, 1, BETA, C, 1 );
443+
chkxer();
444+
cblas_info = 6; RowMajorStrg = TRUE;
445+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, 0, INVALID,
446+
ALPHA, A, 1, B, 1, BETA, C, 1 );
447+
chkxer();
448+
cblas_info = 6; RowMajorStrg = TRUE;
449+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasNoTrans, 0, 0, INVALID,
450+
ALPHA, A, 1, B, 1, BETA, C, 1 );
451+
chkxer();
452+
cblas_info = 6; RowMajorStrg = TRUE;
453+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, 0, INVALID,
454+
ALPHA, A, 1, B, 1, BETA, C, 1 );
455+
chkxer();
456+
cblas_info = 9; RowMajorStrg = TRUE;
457+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 0, 2,
458+
ALPHA, A, 1, B, 1, BETA, C, 2 );
459+
chkxer();
460+
cblas_info = 9; RowMajorStrg = TRUE;
461+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, 0, 2,
462+
ALPHA, A, 1, B, 2, BETA, C, 2 );
463+
chkxer();
464+
cblas_info = 9; RowMajorStrg = TRUE;
465+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasNoTrans, 2, 0, 0,
466+
ALPHA, A, 1, B, 2, BETA, C, 1 );
467+
chkxer();
468+
cblas_info = 9; RowMajorStrg = TRUE;
469+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 2, 0, 0,
470+
ALPHA, A, 1, B, 1, BETA, C, 1 );
471+
chkxer();
472+
cblas_info = 11; RowMajorStrg = TRUE;
473+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 2, 0,
474+
ALPHA, A, 1, B, 1, BETA, C, 1 );
475+
chkxer();
476+
cblas_info = 11; RowMajorStrg = TRUE;
477+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasNoTrans, 0, 2, 0,
478+
ALPHA, A, 2, B, 1, BETA, C, 1 );
479+
chkxer();
480+
cblas_info = 11; RowMajorStrg = TRUE;
481+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, 0, 2,
482+
ALPHA, A, 2, B, 1, BETA, C, 1 );
483+
chkxer();
484+
cblas_info = 11; RowMajorStrg = TRUE;
485+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, 0, 2,
486+
ALPHA, A, 1, B, 1, BETA, C, 1 );
487+
chkxer();
488+
cblas_info = 14; RowMajorStrg = TRUE;
489+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasNoTrans, 0, 2, 0,
490+
ALPHA, A, 1, B, 2, BETA, C, 1 );
491+
chkxer();
492+
cblas_info = 14; RowMajorStrg = TRUE;
493+
cblas_cgemm( CblasRowMajor, CblasNoTrans, CblasTrans, 0, 2, 0,
494+
ALPHA, A, 1, B, 1, BETA, C, 1 );
495+
chkxer();
496+
cblas_info = 14; RowMajorStrg = TRUE;
497+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasNoTrans, 0, 2, 0,
498+
ALPHA, A, 1, B, 2, BETA, C, 1 );
499+
chkxer();
500+
cblas_info = 14; RowMajorStrg = TRUE;
501+
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, 2, 0,
502+
ALPHA, A, 1, B, 1, BETA, C, 1 );
503+
chkxer();
277504

278505
} else if (strncmp( sf,"cblas_chemm" ,11)==0) {
279506
cblas_rout = "cblas_chemm" ;

CBLAS/testing/c_cblas3.c

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,87 @@ void F77_cgemm(CBLAS_INT *layout, char *transpa, char *transpb, CBLAS_INT *m, CB
8787
cblas_cgemm( UNDEFINED, transa, transb, *m, *n, *k, alpha, a, *lda,
8888
b, *ldb, beta, c, *ldc );
8989
}
90+
91+
void F77_cgemmt(CBLAS_INT *layout, char *uplop, char *transpa, char *transpb, CBLAS_INT *n,
92+
CBLAS_INT *k, CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, CBLAS_INT *lda,
93+
CBLAS_TEST_COMPLEX *b, CBLAS_INT *ldb, CBLAS_TEST_COMPLEX *beta,
94+
CBLAS_TEST_COMPLEX *c, CBLAS_INT *ldc ) {
95+
96+
CBLAS_TEST_COMPLEX *A, *B, *C;
97+
CBLAS_INT i,j,LDA, LDB, LDC;
98+
CBLAS_TRANSPOSE transa, transb;
99+
CBLAS_UPLO uplo;
100+
101+
get_transpose_type(transpa, &transa);
102+
get_transpose_type(transpb, &transb);
103+
get_uplo_type(uplop, &uplo);
104+
105+
if (*layout == TEST_ROW_MJR) {
106+
if (transa == CblasNoTrans) {
107+
LDA = *k+1;
108+
A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX));
109+
for( i=0; i<*n; i++ )
110+
for( j=0; j<*k; j++ ) {
111+
A[i*LDA+j].real=a[j*(*lda)+i].real;
112+
A[i*LDA+j].imag=a[j*(*lda)+i].imag;
113+
}
114+
}
115+
else {
116+
LDA = *n+1;
117+
A=(CBLAS_TEST_COMPLEX* )malloc(LDA*(*k)*sizeof(CBLAS_TEST_COMPLEX));
118+
for( i=0; i<*k; i++ )
119+
for( j=0; j<*n; j++ ) {
120+
A[i*LDA+j].real=a[j*(*lda)+i].real;
121+
A[i*LDA+j].imag=a[j*(*lda)+i].imag;
122+
}
123+
}
124+
125+
if (transb == CblasNoTrans) {
126+
LDB = *n+1;
127+
B=(CBLAS_TEST_COMPLEX* )malloc((*k)*LDB*sizeof(CBLAS_TEST_COMPLEX) );
128+
for( i=0; i<*k; i++ )
129+
for( j=0; j<*n; j++ ) {
130+
B[i*LDB+j].real=b[j*(*ldb)+i].real;
131+
B[i*LDB+j].imag=b[j*(*ldb)+i].imag;
132+
}
133+
}
134+
else {
135+
LDB = *k+1;
136+
B=(CBLAS_TEST_COMPLEX* )malloc(LDB*(*n)*sizeof(CBLAS_TEST_COMPLEX));
137+
for( i=0; i<*n; i++ )
138+
for( j=0; j<*k; j++ ) {
139+
B[i*LDB+j].real=b[j*(*ldb)+i].real;
140+
B[i*LDB+j].imag=b[j*(*ldb)+i].imag;
141+
}
142+
}
143+
144+
LDC = *n+1;
145+
C=(CBLAS_TEST_COMPLEX* )malloc((*n)*LDC*sizeof(CBLAS_TEST_COMPLEX));
146+
for( j=0; j<*n; j++ )
147+
for( i=0; i<*n; i++ ) {
148+
C[i*LDC+j].real=c[j*(*ldc)+i].real;
149+
C[i*LDC+j].imag=c[j*(*ldc)+i].imag;
150+
}
151+
cblas_cgemmt( CblasRowMajor, uplo, transa, transb, *n, *k, alpha, A, LDA,
152+
B, LDB, beta, C, LDC );
153+
for( j=0; j<*n; j++ )
154+
for( i=0; i<*n; i++ ) {
155+
c[j*(*ldc)+i].real=C[i*LDC+j].real;
156+
c[j*(*ldc)+i].imag=C[i*LDC+j].imag;
157+
}
158+
free(A);
159+
free(B);
160+
free(C);
161+
}
162+
else if (*layout == TEST_COL_MJR)
163+
cblas_cgemmt( CblasColMajor, uplo, transa, transb, *n, *k, alpha, a, *lda,
164+
b, *ldb, beta, c, *ldc );
165+
else
166+
cblas_cgemmt( UNDEFINED, uplo, transa, transb, *n, *k, alpha, a, *lda,
167+
b, *ldb, beta, c, *ldc );
168+
}
169+
170+
90171
void F77_chemm(CBLAS_INT *layout, char *rtlf, char *uplow, CBLAS_INT *m, CBLAS_INT *n,
91172
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, CBLAS_INT *lda,
92173
CBLAS_TEST_COMPLEX *b, CBLAS_INT *ldb, CBLAS_TEST_COMPLEX *beta,

0 commit comments

Comments
 (0)