9 #include "cblas_test.h" 11 void F77_cgemv(CBLAS_INT *layout,
char *transp, CBLAS_INT *m, CBLAS_INT *n,
14 const void *beta,
void *y, CBLAS_INT *incy) {
18 CBLAS_TRANSPOSE trans;
20 get_transpose_type(transp, &trans);
21 if (*layout == TEST_ROW_MJR) {
25 for( j=0; j<*n; j++ ){
26 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
27 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
29 cblas_cgemv( CblasRowMajor, trans, *m, *n, alpha, A, LDA, x, *incx,
33 else if (*layout == TEST_COL_MJR)
34 cblas_cgemv( CblasColMajor, trans,
35 *m, *n, alpha, a, *lda, x, *incx, beta, y, *incy );
37 cblas_cgemv( UNDEFINED, trans,
38 *m, *n, alpha, a, *lda, x, *incx, beta, y, *incy );
41 void F77_cgbmv(CBLAS_INT *layout,
char *transp, CBLAS_INT *m, CBLAS_INT *n, CBLAS_INT *kl, CBLAS_INT *ku,
47 CBLAS_INT i,j,irow,jcol,LDA;
48 CBLAS_TRANSPOSE trans;
50 get_transpose_type(transp, &trans);
51 if (*layout == TEST_ROW_MJR) {
54 for( i=0; i<*ku; i++ ){
57 for( j=jcol; j<*n; j++ ){
58 A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].
real;
59 A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].
imag;
64 for( j=0; j<*n; j++ ){
65 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
66 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
68 for( i=*ku+1; i<*ku+*kl+1; i++ ){
71 for( j=jcol; j<(*n+*kl); j++ ){
72 A[ LDA*j+irow ].
real=a[ (*lda)*(j-jcol)+i ].real;
73 A[ LDA*j+irow ].
imag=a[ (*lda)*(j-jcol)+i ].imag;
76 cblas_cgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, alpha, A, LDA, x,
77 *incx, beta, y, *incy );
80 else if (*layout == TEST_COL_MJR)
81 cblas_cgbmv( CblasColMajor, trans, *m, *n, *kl, *ku, alpha, a, *lda, x,
82 *incx, beta, y, *incy );
84 cblas_cgbmv( UNDEFINED, trans, *m, *n, *kl, *ku, alpha, a, *lda, x,
85 *incx, beta, y, *incy );
88 void F77_cgeru(CBLAS_INT *layout, CBLAS_INT *m, CBLAS_INT *n,
CBLAS_TEST_COMPLEX *alpha,
95 if (*layout == TEST_ROW_MJR) {
99 for( j=0; j<*n; j++ ){
100 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
101 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
103 cblas_cgeru( CblasRowMajor, *m, *n, alpha, x, *incx, y, *incy, A, LDA );
104 for( i=0; i<*m; i++ )
105 for( j=0; j<*n; j++ ){
106 a[ (*lda)*j+i ].
real=A[ LDA*i+j ].
real;
107 a[ (*lda)*j+i ].
imag=A[ LDA*i+j ].
imag;
111 else if (*layout == TEST_COL_MJR)
112 cblas_cgeru( CblasColMajor, *m, *n, alpha, x, *incx, y, *incy, a, *lda );
114 cblas_cgeru( UNDEFINED, *m, *n, alpha, x, *incx, y, *incy, a, *lda );
117 void F77_cgerc(CBLAS_INT *layout, CBLAS_INT *m, CBLAS_INT *n,
CBLAS_TEST_COMPLEX *alpha,
123 if (*layout == TEST_ROW_MJR) {
126 for( i=0; i<*m; i++ )
127 for( j=0; j<*n; j++ ){
128 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
129 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
131 cblas_cgerc( CblasRowMajor, *m, *n, alpha, x, *incx, y, *incy, A, LDA );
132 for( i=0; i<*m; i++ )
133 for( j=0; j<*n; j++ ){
134 a[ (*lda)*j+i ].
real=A[ LDA*i+j ].
real;
135 a[ (*lda)*j+i ].
imag=A[ LDA*i+j ].
imag;
139 else if (*layout == TEST_COL_MJR)
140 cblas_cgerc( CblasColMajor, *m, *n, alpha, x, *incx, y, *incy, a, *lda );
142 cblas_cgerc( UNDEFINED, *m, *n, alpha, x, *incx, y, *incy, a, *lda );
145 void F77_chemv(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n,
CBLAS_TEST_COMPLEX *alpha,
153 get_uplo_type(uplow,&uplo);
155 if (*layout == TEST_ROW_MJR) {
158 for( i=0; i<*n; i++ )
159 for( j=0; j<*n; j++ ){
160 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
161 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
163 cblas_chemv( CblasRowMajor, uplo, *n, alpha, A, LDA, x, *incx,
167 else if (*layout == TEST_COL_MJR)
168 cblas_chemv( CblasColMajor, uplo, *n, alpha, a, *lda, x, *incx,
171 cblas_chemv( UNDEFINED, uplo, *n, alpha, a, *lda, x, *incx,
175 void F77_chbmv(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n, CBLAS_INT *k,
181 CBLAS_INT i,irow,j,jcol,LDA;
185 get_uplo_type(uplow,&uplo);
187 if (*layout == TEST_ROW_MJR) {
188 if (uplo != CblasUpper && uplo != CblasLower )
189 cblas_chbmv(CblasRowMajor, UNDEFINED, *n, *k, alpha, a, *lda, x,
190 *incx, beta, y, *incy );
194 if (uplo == CblasUpper) {
195 for( i=0; i<*k; i++ ){
198 for( j=jcol; j<*n; j++ ) {
199 A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].
real;
200 A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].
imag;
205 for( j=0; j<*n; j++ ) {
206 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
207 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
213 for( j=0; j<*n; j++ ) {
214 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
215 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
217 for( i=1; i<*k+1; i++ ){
220 for( j=jcol; j<(*n+*k); j++ ) {
221 A[ LDA*j+irow ].
real=a[ (*lda)*(j-jcol)+i ].real;
222 A[ LDA*j+irow ].
imag=a[ (*lda)*(j-jcol)+i ].imag;
226 cblas_chbmv( CblasRowMajor, uplo, *n, *k, alpha, A, LDA, x, *incx,
231 else if (*layout == TEST_COL_MJR)
232 cblas_chbmv(CblasColMajor, uplo, *n, *k, alpha, a, *lda, x, *incx,
235 cblas_chbmv(UNDEFINED, uplo, *n, *k, alpha, a, *lda, x, *incx,
239 void F77_chpmv(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n,
CBLAS_TEST_COMPLEX *alpha,
247 get_uplo_type(uplow,&uplo);
248 if (*layout == TEST_ROW_MJR) {
249 if (uplo != CblasUpper && uplo != CblasLower )
250 cblas_chpmv(CblasRowMajor, UNDEFINED, *n, alpha, ap, x, *incx,
257 if (uplo == CblasUpper) {
258 for( j=0, k=0; j<*n; j++ )
259 for( i=0; i<j+1; i++, k++ ) {
263 for( i=0, k=0; i<*n; i++ )
264 for( j=i; j<*n; j++, k++ ) {
270 for( j=0, k=0; j<*n; j++ )
271 for( i=j; i<*n; i++, k++ ) {
275 for( i=0, k=0; i<*n; i++ )
276 for( j=0; j<i+1; j++, k++ ) {
281 cblas_chpmv( CblasRowMajor, uplo, *n, alpha, AP, x, *incx, beta, y,
287 else if (*layout == TEST_COL_MJR)
288 cblas_chpmv( CblasColMajor, uplo, *n, alpha, ap, x, *incx, beta, y,
291 cblas_chpmv( UNDEFINED, uplo, *n, alpha, ap, x, *incx, beta, y,
295 void F77_ctbmv(CBLAS_INT *layout,
char *uplow,
char *transp,
char *diagn,
299 CBLAS_INT irow, jcol, i, j, LDA;
300 CBLAS_TRANSPOSE trans;
304 get_transpose_type(transp,&trans);
305 get_uplo_type(uplow,&uplo);
306 get_diag_type(diagn,&diag);
308 if (*layout == TEST_ROW_MJR) {
309 if (uplo != CblasUpper && uplo != CblasLower )
310 cblas_ctbmv(CblasRowMajor, UNDEFINED, trans, diag, *n, *k, a, *lda,
315 if (uplo == CblasUpper) {
316 for( i=0; i<*k; i++ ){
319 for( j=jcol; j<*n; j++ ) {
320 A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].
real;
321 A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].
imag;
326 for( j=0; j<*n; j++ ) {
327 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
328 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
334 for( j=0; j<*n; j++ ) {
335 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
336 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
338 for( i=1; i<*k+1; i++ ){
341 for( j=jcol; j<(*n+*k); j++ ) {
342 A[ LDA*j+irow ].
real=a[ (*lda)*(j-jcol)+i ].real;
343 A[ LDA*j+irow ].
imag=a[ (*lda)*(j-jcol)+i ].imag;
347 cblas_ctbmv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA, x,
352 else if (*layout == TEST_COL_MJR)
353 cblas_ctbmv(CblasColMajor, uplo, trans, diag, *n, *k, a, *lda, x, *incx);
355 cblas_ctbmv(UNDEFINED, uplo, trans, diag, *n, *k, a, *lda, x, *incx);
358 void F77_ctbsv(CBLAS_INT *layout,
char *uplow,
char *transp,
char *diagn,
363 CBLAS_INT irow, jcol, i, j, LDA;
364 CBLAS_TRANSPOSE trans;
368 get_transpose_type(transp,&trans);
369 get_uplo_type(uplow,&uplo);
370 get_diag_type(diagn,&diag);
372 if (*layout == TEST_ROW_MJR) {
373 if (uplo != CblasUpper && uplo != CblasLower )
374 cblas_ctbsv(CblasRowMajor, UNDEFINED, trans, diag, *n, *k, a, *lda, x,
379 if (uplo == CblasUpper) {
380 for( i=0; i<*k; i++ ){
383 for( j=jcol; j<*n; j++ ) {
384 A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].
real;
385 A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].
imag;
390 for( j=0; j<*n; j++ ) {
391 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
392 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
398 for( j=0; j<*n; j++ ) {
399 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
400 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
402 for( i=1; i<*k+1; i++ ){
405 for( j=jcol; j<(*n+*k); j++ ) {
406 A[ LDA*j+irow ].
real=a[ (*lda)*(j-jcol)+i ].real;
407 A[ LDA*j+irow ].
imag=a[ (*lda)*(j-jcol)+i ].imag;
411 cblas_ctbsv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA,
416 else if (*layout == TEST_COL_MJR)
417 cblas_ctbsv(CblasColMajor, uplo, trans, diag, *n, *k, a, *lda, x, *incx);
419 cblas_ctbsv(UNDEFINED, uplo, trans, diag, *n, *k, a, *lda, x, *incx);
422 void F77_ctpmv(CBLAS_INT *layout,
char *uplow,
char *transp,
char *diagn,
425 CBLAS_INT i, j, k, LDA;
426 CBLAS_TRANSPOSE trans;
430 get_transpose_type(transp,&trans);
431 get_uplo_type(uplow,&uplo);
432 get_diag_type(diagn,&diag);
434 if (*layout == TEST_ROW_MJR) {
435 if (uplo != CblasUpper && uplo != CblasLower )
436 cblas_ctpmv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx );
442 if (uplo == CblasUpper) {
443 for( j=0, k=0; j<*n; j++ )
444 for( i=0; i<j+1; i++, k++ ) {
448 for( i=0, k=0; i<*n; i++ )
449 for( j=i; j<*n; j++, k++ ) {
455 for( j=0, k=0; j<*n; j++ )
456 for( i=j; i<*n; i++, k++ ) {
460 for( i=0, k=0; i<*n; i++ )
461 for( j=0; j<i+1; j++, k++ ) {
466 cblas_ctpmv( CblasRowMajor, uplo, trans, diag, *n, AP, x, *incx );
471 else if (*layout == TEST_COL_MJR)
472 cblas_ctpmv( CblasColMajor, uplo, trans, diag, *n, ap, x, *incx );
474 cblas_ctpmv( UNDEFINED, uplo, trans, diag, *n, ap, x, *incx );
477 void F77_ctpsv(CBLAS_INT *layout,
char *uplow,
char *transp,
char *diagn,
480 CBLAS_INT i, j, k, LDA;
481 CBLAS_TRANSPOSE trans;
485 get_transpose_type(transp,&trans);
486 get_uplo_type(uplow,&uplo);
487 get_diag_type(diagn,&diag);
489 if (*layout == TEST_ROW_MJR) {
490 if (uplo != CblasUpper && uplo != CblasLower )
491 cblas_ctpsv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx );
497 if (uplo == CblasUpper) {
498 for( j=0, k=0; j<*n; j++ )
499 for( i=0; i<j+1; i++, k++ ) {
503 for( i=0, k=0; i<*n; i++ )
504 for( j=i; j<*n; j++, k++ ) {
510 for( j=0, k=0; j<*n; j++ )
511 for( i=j; i<*n; i++, k++ ) {
515 for( i=0, k=0; i<*n; i++ )
516 for( j=0; j<i+1; j++, k++ ) {
521 cblas_ctpsv( CblasRowMajor, uplo, trans, diag, *n, AP, x, *incx );
526 else if (*layout == TEST_COL_MJR)
527 cblas_ctpsv( CblasColMajor, uplo, trans, diag, *n, ap, x, *incx );
529 cblas_ctpsv( UNDEFINED, uplo, trans, diag, *n, ap, x, *incx );
532 void F77_ctrmv(CBLAS_INT *layout,
char *uplow,
char *transp,
char *diagn,
537 CBLAS_TRANSPOSE trans;
541 get_transpose_type(transp,&trans);
542 get_uplo_type(uplow,&uplo);
543 get_diag_type(diagn,&diag);
545 if (*layout == TEST_ROW_MJR) {
548 for( i=0; i<*n; i++ )
549 for( j=0; j<*n; j++ ) {
550 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
551 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
553 cblas_ctrmv(CblasRowMajor, uplo, trans, diag, *n, A, LDA, x, *incx);
556 else if (*layout == TEST_COL_MJR)
557 cblas_ctrmv(CblasColMajor, uplo, trans, diag, *n, a, *lda, x, *incx);
559 cblas_ctrmv(UNDEFINED, uplo, trans, diag, *n, a, *lda, x, *incx);
561 void F77_ctrsv(CBLAS_INT *layout,
char *uplow,
char *transp,
char *diagn,
566 CBLAS_TRANSPOSE trans;
570 get_transpose_type(transp,&trans);
571 get_uplo_type(uplow,&uplo);
572 get_diag_type(diagn,&diag);
574 if (*layout == TEST_ROW_MJR) {
577 for( i=0; i<*n; i++ )
578 for( j=0; j<*n; j++ ) {
579 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
580 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
582 cblas_ctrsv(CblasRowMajor, uplo, trans, diag, *n, A, LDA, x, *incx );
585 else if (*layout == TEST_COL_MJR)
586 cblas_ctrsv(CblasColMajor, uplo, trans, diag, *n, a, *lda, x, *incx );
588 cblas_ctrsv(UNDEFINED, uplo, trans, diag, *n, a, *lda, x, *incx );
591 void F77_chpr(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n,
float *alpha,
597 get_uplo_type(uplow,&uplo);
599 if (*layout == TEST_ROW_MJR) {
600 if (uplo != CblasUpper && uplo != CblasLower )
601 cblas_chpr(CblasRowMajor, UNDEFINED, *n, *alpha, x, *incx, ap );
607 if (uplo == CblasUpper) {
608 for( j=0, k=0; j<*n; j++ )
609 for( i=0; i<j+1; i++, k++ ){
613 for( i=0, k=0; i<*n; i++ )
614 for( j=i; j<*n; j++, k++ ){
620 for( j=0, k=0; j<*n; j++ )
621 for( i=j; i<*n; i++, k++ ){
625 for( i=0, k=0; i<*n; i++ )
626 for( j=0; j<i+1; j++, k++ ){
631 cblas_chpr(CblasRowMajor, uplo, *n, *alpha, x, *incx, AP );
632 if (uplo == CblasUpper) {
633 for( i=0, k=0; i<*n; i++ )
634 for( j=i; j<*n; j++, k++ ){
638 for( j=0, k=0; j<*n; j++ )
639 for( i=0; i<j+1; i++, k++ ){
645 for( i=0, k=0; i<*n; i++ )
646 for( j=0; j<i+1; j++, k++ ){
650 for( j=0, k=0; j<*n; j++ )
651 for( i=j; i<*n; i++, k++ ){
660 else if (*layout == TEST_COL_MJR)
661 cblas_chpr(CblasColMajor, uplo, *n, *alpha, x, *incx, ap );
663 cblas_chpr(UNDEFINED, uplo, *n, *alpha, x, *incx, ap );
666 void F77_chpr2(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n,
CBLAS_TEST_COMPLEX *alpha,
673 get_uplo_type(uplow,&uplo);
675 if (*layout == TEST_ROW_MJR) {
676 if (uplo != CblasUpper && uplo != CblasLower )
677 cblas_chpr2( CblasRowMajor, UNDEFINED, *n, alpha, x, *incx, y,
684 if (uplo == CblasUpper) {
685 for( j=0, k=0; j<*n; j++ )
686 for( i=0; i<j+1; i++, k++ ) {
690 for( i=0, k=0; i<*n; i++ )
691 for( j=i; j<*n; j++, k++ ) {
697 for( j=0, k=0; j<*n; j++ )
698 for( i=j; i<*n; i++, k++ ) {
702 for( i=0, k=0; i<*n; i++ )
703 for( j=0; j<i+1; j++, k++ ) {
708 cblas_chpr2( CblasRowMajor, uplo, *n, alpha, x, *incx, y, *incy, AP );
709 if (uplo == CblasUpper) {
710 for( i=0, k=0; i<*n; i++ )
711 for( j=i; j<*n; j++, k++ ) {
715 for( j=0, k=0; j<*n; j++ )
716 for( i=0; i<j+1; i++, k++ ) {
722 for( i=0, k=0; i<*n; i++ )
723 for( j=0; j<i+1; j++, k++ ) {
727 for( j=0, k=0; j<*n; j++ )
728 for( i=j; i<*n; i++, k++ ) {
737 else if (*layout == TEST_COL_MJR)
738 cblas_chpr2( CblasColMajor, uplo, *n, alpha, x, *incx, y, *incy, ap );
740 cblas_chpr2( UNDEFINED, uplo, *n, alpha, x, *incx, y, *incy, ap );
743 void F77_cher(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n,
float *alpha,
749 get_uplo_type(uplow,&uplo);
751 if (*layout == TEST_ROW_MJR) {
755 for( i=0; i<*n; i++ )
756 for( j=0; j<*n; j++ ) {
757 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
758 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
761 cblas_cher(CblasRowMajor, uplo, *n, *alpha, x, *incx, A, LDA );
762 for( i=0; i<*n; i++ )
763 for( j=0; j<*n; j++ ) {
764 a[ (*lda)*j+i ].
real=A[ LDA*i+j ].
real;
765 a[ (*lda)*j+i ].
imag=A[ LDA*i+j ].
imag;
769 else if (*layout == TEST_COL_MJR)
770 cblas_cher( CblasColMajor, uplo, *n, *alpha, x, *incx, a, *lda );
772 cblas_cher( UNDEFINED, uplo, *n, *alpha, x, *incx, a, *lda );
775 void F77_cher2(CBLAS_INT *layout,
char *uplow, CBLAS_INT *n,
CBLAS_TEST_COMPLEX *alpha,
783 get_uplo_type(uplow,&uplo);
785 if (*layout == TEST_ROW_MJR) {
789 for( i=0; i<*n; i++ )
790 for( j=0; j<*n; j++ ) {
791 A[ LDA*i+j ].
real=a[ (*lda)*j+i ].
real;
792 A[ LDA*i+j ].
imag=a[ (*lda)*j+i ].
imag;
795 cblas_cher2(CblasRowMajor, uplo, *n, alpha, x, *incx, y, *incy, A, LDA );
796 for( i=0; i<*n; i++ )
797 for( j=0; j<*n; j++ ) {
798 a[ (*lda)*j+i ].
real=A[ LDA*i+j ].
real;
799 a[ (*lda)*j+i ].
imag=A[ LDA*i+j ].
imag;
803 else if (*layout == TEST_COL_MJR)
804 cblas_cher2( CblasColMajor, uplo, *n, alpha, x, *incx, y, *incy, a, *lda);
806 cblas_cher2( UNDEFINED, uplo, *n, alpha, x, *incx, y, *incy, a, *lda);