9 #include "cblas_test.h" 10 #define TEST_COL_MJR 0 11 #define TEST_ROW_MJR 1 14 void F77_cgemm(CBLAS_INT *layout,
char *transpa,
char *transpb, CBLAS_INT *m, CBLAS_INT *n,
20 CBLAS_INT i,j,LDA, LDB, LDC;
21 CBLAS_TRANSPOSE transa, transb;
23 get_transpose_type(transpa, &transa);
24 get_transpose_type(transpb, &transb);
26 if (*layout == TEST_ROW_MJR) {
27 if (transa == CblasNoTrans) {
31 for( j=0; j<*k; j++ ) {
40 for( j=0; j<*m; j++ ) {
46 if (transb == CblasNoTrans) {
50 for( j=0; j<*n; j++ ) {
59 for( j=0; j<*k; j++ ) {
68 for( i=0; i<*m; i++ ) {
72 cblas_cgemm( CblasRowMajor, transa, transb, *m, *n, *k, alpha, A, LDA,
73 B, LDB, beta, C, LDC );
75 for( i=0; i<*m; i++ ) {
83 else if (*layout == TEST_COL_MJR)
84 cblas_cgemm( CblasColMajor, transa, transb, *m, *n, *k, alpha, a, *lda,
85 b, *ldb, beta, c, *ldc );
87 cblas_cgemm( UNDEFINED, transa, transb, *m, *n, *k, alpha, a, *lda,
88 b, *ldb, beta, c, *ldc );
90 void F77_chemm(CBLAS_INT *layout,
char *rtlf,
char *uplow, CBLAS_INT *m, CBLAS_INT *n,
96 CBLAS_INT i,j,LDA, LDB, LDC;
100 get_uplo_type(uplow,&uplo);
101 get_side_type(rtlf,&side);
103 if (*layout == TEST_ROW_MJR) {
104 if (side == CblasLeft) {
107 for( i=0; i<*m; i++ )
108 for( j=0; j<*m; j++ ) {
116 for( i=0; i<*n; i++ )
117 for( j=0; j<*n; j++ ) {
124 for( i=0; i<*m; i++ )
125 for( j=0; j<*n; j++ ) {
131 for( j=0; j<*n; j++ )
132 for( i=0; i<*m; i++ ) {
136 cblas_chemm( CblasRowMajor, side, uplo, *m, *n, alpha, A, LDA, B, LDB,
138 for( j=0; j<*n; j++ )
139 for( i=0; i<*m; i++ ) {
147 else if (*layout == TEST_COL_MJR)
148 cblas_chemm( CblasColMajor, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
151 cblas_chemm( UNDEFINED, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
154 void F77_csymm(CBLAS_INT *layout,
char *rtlf,
char *uplow, CBLAS_INT *m, CBLAS_INT *n,
160 CBLAS_INT i,j,LDA, LDB, LDC;
164 get_uplo_type(uplow,&uplo);
165 get_side_type(rtlf,&side);
167 if (*layout == TEST_ROW_MJR) {
168 if (side == CblasLeft) {
171 for( i=0; i<*m; i++ )
172 for( j=0; j<*m; j++ )
173 A[i*LDA+j]=a[j*(*lda)+i];
178 for( i=0; i<*n; i++ )
179 for( j=0; j<*n; j++ )
180 A[i*LDA+j]=a[j*(*lda)+i];
184 for( i=0; i<*m; i++ )
185 for( j=0; j<*n; j++ )
186 B[i*LDB+j]=b[j*(*ldb)+i];
189 for( j=0; j<*n; j++ )
190 for( i=0; i<*m; i++ )
191 C[i*LDC+j]=c[j*(*ldc)+i];
192 cblas_csymm( CblasRowMajor, side, uplo, *m, *n, alpha, A, LDA, B, LDB,
194 for( j=0; j<*n; j++ )
195 for( i=0; i<*m; i++ )
196 c[j*(*ldc)+i]=C[i*LDC+j];
201 else if (*layout == TEST_COL_MJR)
202 cblas_csymm( CblasColMajor, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
205 cblas_csymm( UNDEFINED, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
209 void F77_cherk(CBLAS_INT *layout,
char *uplow,
char *transp, CBLAS_INT *n, CBLAS_INT *k,
213 CBLAS_INT i,j,LDA,LDC;
216 CBLAS_TRANSPOSE trans;
218 get_uplo_type(uplow,&uplo);
219 get_transpose_type(transp,&trans);
221 if (*layout == TEST_ROW_MJR) {
222 if (trans == CblasNoTrans) {
225 for( i=0; i<*n; i++ )
226 for( j=0; j<*k; j++ ) {
234 for( i=0; i<*k; i++ )
235 for( j=0; j<*n; j++ ) {
242 for( i=0; i<*n; i++ )
243 for( j=0; j<*n; j++ ) {
247 cblas_cherk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
249 for( j=0; j<*n; j++ )
250 for( i=0; i<*n; i++ ) {
257 else if (*layout == TEST_COL_MJR)
258 cblas_cherk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
261 cblas_cherk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
265 void F77_csyrk(CBLAS_INT *layout,
char *uplow,
char *transp, CBLAS_INT *n, CBLAS_INT *k,
269 CBLAS_INT i,j,LDA,LDC;
272 CBLAS_TRANSPOSE trans;
274 get_uplo_type(uplow,&uplo);
275 get_transpose_type(transp,&trans);
277 if (*layout == TEST_ROW_MJR) {
278 if (trans == CblasNoTrans) {
281 for( i=0; i<*n; i++ )
282 for( j=0; j<*k; j++ ) {
290 for( i=0; i<*k; i++ )
291 for( j=0; j<*n; j++ ) {
298 for( i=0; i<*n; i++ )
299 for( j=0; j<*n; j++ ) {
303 cblas_csyrk(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA, beta,
305 for( j=0; j<*n; j++ )
306 for( i=0; i<*n; i++ ) {
313 else if (*layout == TEST_COL_MJR)
314 cblas_csyrk(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda, beta,
317 cblas_csyrk(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda, beta,
320 void F77_cher2k(CBLAS_INT *layout,
char *uplow,
char *transp, CBLAS_INT *n, CBLAS_INT *k,
324 CBLAS_INT i,j,LDA,LDB,LDC;
327 CBLAS_TRANSPOSE trans;
329 get_uplo_type(uplow,&uplo);
330 get_transpose_type(transp,&trans);
332 if (*layout == TEST_ROW_MJR) {
333 if (trans == CblasNoTrans) {
338 for( i=0; i<*n; i++ )
339 for( j=0; j<*k; j++ ) {
351 for( i=0; i<*k; i++ )
352 for( j=0; j<*n; j++ ){
361 for( i=0; i<*n; i++ )
362 for( j=0; j<*n; j++ ) {
366 cblas_cher2k(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA,
367 B, LDB, *beta, C, LDC );
368 for( j=0; j<*n; j++ )
369 for( i=0; i<*n; i++ ) {
377 else if (*layout == TEST_COL_MJR)
378 cblas_cher2k(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda,
379 b, *ldb, *beta, c, *ldc );
381 cblas_cher2k(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda,
382 b, *ldb, *beta, c, *ldc );
384 void F77_csyr2k(CBLAS_INT *layout,
char *uplow,
char *transp, CBLAS_INT *n, CBLAS_INT *k,
388 CBLAS_INT i,j,LDA,LDB,LDC;
391 CBLAS_TRANSPOSE trans;
393 get_uplo_type(uplow,&uplo);
394 get_transpose_type(transp,&trans);
396 if (*layout == TEST_ROW_MJR) {
397 if (trans == CblasNoTrans) {
402 for( i=0; i<*n; i++ )
403 for( j=0; j<*k; j++ ) {
415 for( i=0; i<*k; i++ )
416 for( j=0; j<*n; j++ ){
425 for( i=0; i<*n; i++ )
426 for( j=0; j<*n; j++ ) {
430 cblas_csyr2k(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA,
431 B, LDB, beta, C, LDC );
432 for( j=0; j<*n; j++ )
433 for( i=0; i<*n; i++ ) {
441 else if (*layout == TEST_COL_MJR)
442 cblas_csyr2k(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda,
443 b, *ldb, beta, c, *ldc );
445 cblas_csyr2k(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda,
446 b, *ldb, beta, c, *ldc );
448 void F77_ctrmm(CBLAS_INT *layout,
char *rtlf,
char *uplow,
char *transp,
char *diagn,
451 CBLAS_INT i,j,LDA,LDB;
456 CBLAS_TRANSPOSE trans;
458 get_uplo_type(uplow,&uplo);
459 get_transpose_type(transp,&trans);
460 get_diag_type(diagn,&diag);
461 get_side_type(rtlf,&side);
463 if (*layout == TEST_ROW_MJR) {
464 if (side == CblasLeft) {
467 for( i=0; i<*m; i++ )
468 for( j=0; j<*m; j++ ) {
476 for( i=0; i<*n; i++ )
477 for( j=0; j<*n; j++ ) {
484 for( i=0; i<*m; i++ )
485 for( j=0; j<*n; j++ ) {
489 cblas_ctrmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, alpha,
491 for( j=0; j<*n; j++ )
492 for( i=0; i<*m; i++ ) {
499 else if (*layout == TEST_COL_MJR)
500 cblas_ctrmm(CblasColMajor, side, uplo, trans, diag, *m, *n, alpha,
503 cblas_ctrmm(UNDEFINED, side, uplo, trans, diag, *m, *n, alpha,
507 void F77_ctrsm(CBLAS_INT *layout,
char *rtlf,
char *uplow,
char *transp,
char *diagn,
510 CBLAS_INT i,j,LDA,LDB;
515 CBLAS_TRANSPOSE trans;
517 get_uplo_type(uplow,&uplo);
518 get_transpose_type(transp,&trans);
519 get_diag_type(diagn,&diag);
520 get_side_type(rtlf,&side);
522 if (*layout == TEST_ROW_MJR) {
523 if (side == CblasLeft) {
526 for( i=0; i<*m; i++ )
527 for( j=0; j<*m; j++ ) {
535 for( i=0; i<*n; i++ )
536 for( j=0; j<*n; j++ ) {
543 for( i=0; i<*m; i++ )
544 for( j=0; j<*n; j++ ) {
548 cblas_ctrsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, alpha,
550 for( j=0; j<*n; j++ )
551 for( i=0; i<*m; i++ ) {
558 else if (*layout == TEST_COL_MJR)
559 cblas_ctrsm(CblasColMajor, side, uplo, trans, diag, *m, *n, alpha,
562 cblas_ctrsm(UNDEFINED, side, uplo, trans, diag, *m, *n, alpha,