Skip to content

Commit 60d0e76

Browse files
Adding cblas_zgemmtr test
1 parent f9ea71e commit 60d0e76

File tree

4 files changed

+733
-92
lines changed

4 files changed

+733
-92
lines changed

CBLAS/testing/c_cblat3.f

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ PROGRAM CBLAT3
2020
* (0.0,0.0) (1.0,0.0) (0.7,-0.9) VALUES OF ALPHA
2121
* 3 NUMBER OF VALUES OF BETA
2222
* (0.0,0.0) (1.0,0.0) (1.3,-1.1) VALUES OF BETA
23-
* cblas_cgemm T PUT F FOR NO TEST. SAME COLUMNS.
24-
* cblas_chemm T PUT F FOR NO TEST. SAME COLUMNS.
25-
* cblas_csymm T PUT F FOR NO TEST. SAME COLUMNS.
26-
* cblas_ctrmm T PUT F FOR NO TEST. SAME COLUMNS.
27-
* cblas_ctrsm T PUT F FOR NO TEST. SAME COLUMNS.
28-
* cblas_cherk T PUT F FOR NO TEST. SAME COLUMNS.
29-
* cblas_csyrk T PUT F FOR NO TEST. SAME COLUMNS.
30-
* cblas_cher2k T PUT F FOR NO TEST. SAME COLUMNS.
31-
* cblas_csyr2k T PUT F FOR NO TEST. SAME COLUMNS.
23+
* cblas_cgemm T PUT F FOR NO TEST. SAME COLUMNS.
24+
* cblas_chemm T PUT F FOR NO TEST. SAME COLUMNS.
25+
* cblas_csymm T PUT F FOR NO TEST. SAME COLUMNS.
26+
* cblas_ctrmm T PUT F FOR NO TEST. SAME COLUMNS.
27+
* cblas_ctrsm T PUT F FOR NO TEST. SAME COLUMNS.
28+
* cblas_cherk T PUT F FOR NO TEST. SAME COLUMNS.
29+
* cblas_csyrk T PUT F FOR NO TEST. SAME COLUMNS.
30+
* cblas_cher2k T PUT F FOR NO TEST. SAME COLUMNS.
31+
* cblas_csyr2k T PUT F FOR NO TEST. SAME COLUMNS.
3232
* cblas_cgemmtr T PUT F FOR NO TEST. SAME COLUMNS.
3333
*
3434
* See:
@@ -2852,7 +2852,7 @@ SUBROUTINE CCHK6( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
28522852
LOGICAL LCE, LCERES
28532853
EXTERNAL LCE, LCERES
28542854
* .. External Subroutines ..
2855-
EXTERNAL CCGEMM, CMAKE, CMMCH
2855+
EXTERNAL CCGEMMTR, CMAKE, CMMTCH, CPRCN8
28562856
* .. Intrinsic Functions ..
28572857
INTRINSIC MAX
28582858
* .. Scalars in Common ..
@@ -3341,7 +3341,7 @@ SUBROUTINE CMMTCH(UPLO, TRANSA, TRANSB, N, KK, ALPHA, A, LDA,
33413341
9998 FORMAT( 1X, I7, 2( ' (', G15.6, ',', G15.6, ')' ) )
33423342
9997 FORMAT( ' THESE ARE THE RESULTS FOR COLUMN ', I3 )
33433343
*
3344-
* End of CMMCH.
3344+
* End of CMMTCH.
33453345
*
33463346
END
33473347

CBLAS/testing/c_zblas3.c

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

0 commit comments

Comments
 (0)