181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray/* 281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray * Written by D.P. Manley, Digital Equipment Corporation. 381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray * Prefixed "C_" to BLAS routines and their declarations. 481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray * 581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray * Modified by T. H. Do, 4/08/98, SGI/CRAY Research. 681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray */ 781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray#include <stdlib.h> 881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray#include "cblas.h" 981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray#include "cblas_test.h" 1081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 1181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_cgemv(int *order, char *transp, int *m, int *n, 1281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray const void *alpha, 1381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *a, int *lda, const void *x, int *incx, 1481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray const void *beta, void *y, int *incy) { 1581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 1681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 1781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 1881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 1981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 2081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp, &trans); 2181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 2281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 2381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A = (CBLAS_TEST_COMPLEX *)malloc( (*m)*LDA*sizeof( CBLAS_TEST_COMPLEX) ); 2481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*m; i++ ) 2581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 2681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 2781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 2881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 2981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgemv( CblasRowMajor, trans, *m, *n, alpha, A, LDA, x, *incx, 3081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 3181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 3281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 3381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 3481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgemv( CblasColMajor, trans, 3581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *m, *n, alpha, a, *lda, x, *incx, beta, y, *incy ); 3681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 3781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgemv( UNDEFINED, trans, 3881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *m, *n, alpha, a, *lda, x, *incx, beta, y, *incy ); 3981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 4081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 4181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_cgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku, 4281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda, 4381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, 4481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *beta, CBLAS_TEST_COMPLEX *y, int *incy) { 4581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 4681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 4781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,irow,jcol,LDA; 4881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 4981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 5081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp, &trans); 5181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 5281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *ku+*kl+2; 5381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=( CBLAS_TEST_COMPLEX* )malloc((*n+*kl)*LDA*sizeof(CBLAS_TEST_COMPLEX)); 5481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*ku; i++ ){ 5581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*ku+*kl-i; 5681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=(*ku)-i; 5781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<*n; j++ ){ 5881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].real; 5981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].imag; 6081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 6181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 6281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=*ku; 6381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*ku+*kl-i; 6481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 6581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 6681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 6781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 6881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=*ku+1; i<*ku+*kl+1; i++ ){ 6981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*ku+*kl-i; 7081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=i-(*ku); 7181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<(*n+*kl); j++ ){ 7281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*(j-jcol)+i ].real; 7381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*(j-jcol)+i ].imag; 7481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 7581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 7681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, alpha, A, LDA, x, 7781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incx, beta, y, *incy ); 7881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 7981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 8081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 8181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgbmv( CblasColMajor, trans, *m, *n, *kl, *ku, alpha, a, *lda, x, 8281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incx, beta, y, *incy ); 8381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 8481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgbmv( UNDEFINED, trans, *m, *n, *kl, *ku, alpha, a, *lda, x, 8581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incx, beta, y, *incy ); 8681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 8781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 8881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_cgeru(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha, 8981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy, 9081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *a, int *lda){ 9181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 9281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 9381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 9481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 9581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 9681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 9781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc((*m)*LDA*sizeof(CBLAS_TEST_COMPLEX)); 9881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*m; i++ ) 9981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 10081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 10181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 10281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 10381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgeru( CblasRowMajor, *m, *n, alpha, x, *incx, y, *incy, A, LDA ); 10481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*m; i++ ) 10581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 10681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].real=A[ LDA*i+j ].real; 10781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].imag=A[ LDA*i+j ].imag; 10881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 10981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 11081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 11181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 11281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgeru( CblasColMajor, *m, *n, alpha, x, *incx, y, *incy, a, *lda ); 11381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 11481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgeru( UNDEFINED, *m, *n, alpha, x, *incx, y, *incy, a, *lda ); 11581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 11681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 11781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_cgerc(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha, 11881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy, 11981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *a, int *lda) { 12081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 12181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 12281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 12381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 12481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 12581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX* )malloc((*m)*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); 12681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*m; i++ ) 12781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 12881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 12981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 13081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 13181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgerc( CblasRowMajor, *m, *n, alpha, x, *incx, y, *incy, A, LDA ); 13281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*m; i++ ) 13381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 13481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].real=A[ LDA*i+j ].real; 13581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].imag=A[ LDA*i+j ].imag; 13681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 13781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 13881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 13981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 14081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgerc( CblasColMajor, *m, *n, alpha, x, *incx, y, *incy, a, *lda ); 14181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 14281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cgerc( UNDEFINED, *m, *n, alpha, x, *incx, y, *incy, a, *lda ); 14381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 14481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 14581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_chemv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, 14681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *a, int *lda, CBLAS_TEST_COMPLEX *x, 14781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *incx, CBLAS_TEST_COMPLEX *beta, CBLAS_TEST_COMPLEX *y, int *incy){ 14881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 14981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 15081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 15181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 15281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 15381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 15481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 15581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 15681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 15781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A = (CBLAS_TEST_COMPLEX *)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX)); 15881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 15981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ){ 16081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 16181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 16281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 16381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chemv( CblasRowMajor, uplo, *n, alpha, A, LDA, x, *incx, 16481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 16581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 16681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 16781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 16881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chemv( CblasColMajor, uplo, *n, alpha, a, *lda, x, *incx, 16981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 17081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 17181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chemv( UNDEFINED, uplo, *n, alpha, a, *lda, x, *incx, 17281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 17381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 17481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 17581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_chbmv(int *order, char *uplow, int *n, int *k, 17681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda, 17781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *beta, 17881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *y, int *incy){ 17981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 18081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim MurrayCBLAS_TEST_COMPLEX *A; 18181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayint i,irow,j,jcol,LDA; 18281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 18381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 18481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 18581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 18681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 18781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 18881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 18981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chbmv(CblasRowMajor, UNDEFINED, *n, *k, alpha, a, *lda, x, 19081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incx, beta, y, *incy ); 19181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 19281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *k+2; 19381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A =(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX)); 19481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 19581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*k; i++ ){ 19681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 19781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=(*k)-i; 19881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<*n; j++ ) { 19981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].real; 20081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].imag; 20181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 20281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 20381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=*k; 20481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 20581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 20681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 20781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 20881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 20981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 21081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 21181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=0; 21281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 21381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 21481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 21581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 21681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 21781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=1; i<*k+1; i++ ){ 21881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 21981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=i; 22081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<(*n+*k); j++ ) { 22181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*(j-jcol)+i ].real; 22281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*(j-jcol)+i ].imag; 22381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 22481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 22581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 22681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chbmv( CblasRowMajor, uplo, *n, *k, alpha, A, LDA, x, *incx, 22781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 22881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 22981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 23081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 23181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 23281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chbmv(CblasColMajor, uplo, *n, *k, alpha, a, *lda, x, *incx, 23381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 23481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 23581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chbmv(UNDEFINED, uplo, *n, *k, alpha, a, *lda, x, *incx, 23681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy ); 23781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 23881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 23981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_chpmv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, 24081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *ap, CBLAS_TEST_COMPLEX *x, int *incx, 24181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *beta, CBLAS_TEST_COMPLEX *y, int *incy){ 24281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 24381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A, *AP; 24481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,k,LDA; 24581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 24681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 24781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 24881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 24981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 25081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpmv(CblasRowMajor, UNDEFINED, *n, alpha, ap, x, *incx, 25181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray beta, y, *incy); 25281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 25381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n; 25481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A = (CBLAS_TEST_COMPLEX* )malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX )); 25581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP = (CBLAS_TEST_COMPLEX* )malloc( (((LDA+1)*LDA)/2)* 25681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray sizeof( CBLAS_TEST_COMPLEX )); 25781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 25881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 25981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ) { 26081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 26181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 26281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 26381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 26481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ) { 26581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 26681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 26781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 26881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 26981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 27081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 27181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ) { 27281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 27381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 27481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 27581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 27681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ) { 27781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 27881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 27981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 28081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 28181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpmv( CblasRowMajor, uplo, *n, alpha, AP, x, *incx, beta, y, 28281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incy ); 28381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 28481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(AP); 28581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 28681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 28781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 28881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpmv( CblasColMajor, uplo, *n, alpha, ap, x, *incx, beta, y, 28981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incy ); 29081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 29181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpmv( UNDEFINED, uplo, *n, alpha, ap, x, *incx, beta, y, 29281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incy ); 29381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 29481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 29581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_ctbmv(int *order, char *uplow, char *transp, char *diagn, 29681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *n, int *k, CBLAS_TEST_COMPLEX *a, int *lda, CBLAS_TEST_COMPLEX *x, 29781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *incx) { 29881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 29981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int irow, jcol, i, j, LDA; 30081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 30181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 30281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_DIAG diag; 30381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 30481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp,&trans); 30581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 30681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_diag_type(diagn,&diag); 30781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 30881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 30981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 31081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbmv(CblasRowMajor, UNDEFINED, trans, diag, *n, *k, a, *lda, 31181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray x, *incx); 31281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 31381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *k+2; 31481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX *)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX)); 31581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 31681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*k; i++ ){ 31781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 31881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=(*k)-i; 31981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<*n; j++ ) { 32081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].real; 32181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].imag; 32281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 32381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 32481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=*k; 32581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 32681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 32781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 32881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 32981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 33081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 33181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 33281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=0; 33381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 33481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 33581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 33681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 33781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 33881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=1; i<*k+1; i++ ){ 33981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 34081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=i; 34181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<(*n+*k); j++ ) { 34281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*(j-jcol)+i ].real; 34381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*(j-jcol)+i ].imag; 34481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 34581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 34681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 34781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbmv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA, x, 34881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incx); 34981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 35081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 35181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 35281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 35381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbmv(CblasColMajor, uplo, trans, diag, *n, *k, a, *lda, x, *incx); 35481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 35581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbmv(UNDEFINED, uplo, trans, diag, *n, *k, a, *lda, x, *incx); 35681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 35781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 35881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_ctbsv(int *order, char *uplow, char *transp, char *diagn, 35981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *n, int *k, CBLAS_TEST_COMPLEX *a, int *lda, CBLAS_TEST_COMPLEX *x, 36081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *incx) { 36181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 36281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 36381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int irow, jcol, i, j, LDA; 36481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 36581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 36681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_DIAG diag; 36781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 36881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp,&trans); 36981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 37081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_diag_type(diagn,&diag); 37181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 37281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 37381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 37481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbsv(CblasRowMajor, UNDEFINED, trans, diag, *n, *k, a, *lda, x, 37581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incx); 37681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 37781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *k+2; 37881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_COMPLEX )); 37981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 38081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*k; i++ ){ 38181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 38281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=(*k)-i; 38381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<*n; j++ ) { 38481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].real; 38581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].imag; 38681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 38781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 38881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=*k; 38981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 39081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 39181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 39281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 39381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 39481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 39581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 39681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray i=0; 39781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 39881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 39981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real; 40081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag; 40181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 40281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=1; i<*k+1; i++ ){ 40381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray irow=*k-i; 40481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray jcol=i; 40581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=jcol; j<(*n+*k); j++ ) { 40681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].real=a[ (*lda)*(j-jcol)+i ].real; 40781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*j+irow ].imag=a[ (*lda)*(j-jcol)+i ].imag; 40881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 40981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 41081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 41181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbsv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA, 41281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray x, *incx); 41381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 41481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 41581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 41681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 41781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbsv(CblasColMajor, uplo, trans, diag, *n, *k, a, *lda, x, *incx); 41881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 41981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctbsv(UNDEFINED, uplo, trans, diag, *n, *k, a, *lda, x, *incx); 42081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 42181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 42281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_ctpmv(int *order, char *uplow, char *transp, char *diagn, 42381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *n, CBLAS_TEST_COMPLEX *ap, CBLAS_TEST_COMPLEX *x, int *incx) { 42481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A, *AP; 42581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i, j, k, LDA; 42681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 42781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 42881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_DIAG diag; 42981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 43081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp,&trans); 43181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 43281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_diag_type(diagn,&diag); 43381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 43481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 43581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 43681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpmv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx ); 43781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 43881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n; 43981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX)); 44081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP=(CBLAS_TEST_COMPLEX*)malloc((((LDA+1)*LDA)/2)* 44181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray sizeof(CBLAS_TEST_COMPLEX)); 44281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 44381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 44481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ) { 44581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 44681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 44781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 44881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 44981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ) { 45081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 45181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 45281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 45381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 45481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 45581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 45681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ) { 45781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 45881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 45981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 46081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 46181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ) { 46281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 46381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 46481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 46581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 46681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpmv( CblasRowMajor, uplo, trans, diag, *n, AP, x, *incx ); 46781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 46881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(AP); 46981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 47081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 47181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 47281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpmv( CblasColMajor, uplo, trans, diag, *n, ap, x, *incx ); 47381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 47481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpmv( UNDEFINED, uplo, trans, diag, *n, ap, x, *incx ); 47581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 47681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 47781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_ctpsv(int *order, char *uplow, char *transp, char *diagn, 47881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *n, CBLAS_TEST_COMPLEX *ap, CBLAS_TEST_COMPLEX *x, int *incx) { 47981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A, *AP; 48081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i, j, k, LDA; 48181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 48281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 48381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_DIAG diag; 48481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 48581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp,&trans); 48681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 48781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_diag_type(diagn,&diag); 48881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 48981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 49081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 49181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpsv( CblasRowMajor, UNDEFINED, trans, diag, *n, ap, x, *incx ); 49281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 49381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n; 49481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX)); 49581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP=(CBLAS_TEST_COMPLEX*)malloc((((LDA+1)*LDA)/2)* 49681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray sizeof(CBLAS_TEST_COMPLEX)); 49781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 49881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 49981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ) { 50081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 50181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 50281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 50381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 50481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ) { 50581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 50681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 50781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 50881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 50981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 51081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 51181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ) { 51281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 51381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 51481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 51581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 51681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ) { 51781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 51881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 51981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 52081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 52181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpsv( CblasRowMajor, uplo, trans, diag, *n, AP, x, *incx ); 52281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 52381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(AP); 52481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 52581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 52681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 52781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpsv( CblasColMajor, uplo, trans, diag, *n, ap, x, *incx ); 52881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 52981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctpsv( UNDEFINED, uplo, trans, diag, *n, ap, x, *incx ); 53081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 53181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 53281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_ctrmv(int *order, char *uplow, char *transp, char *diagn, 53381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *n, CBLAS_TEST_COMPLEX *a, int *lda, CBLAS_TEST_COMPLEX *x, 53481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *incx) { 53581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 53681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 53781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 53881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 53981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_DIAG diag; 54081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 54181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp,&trans); 54281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 54381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_diag_type(diagn,&diag); 54481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 54581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 54681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA=*n+1; 54781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX)); 54881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 54981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 55081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 55181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 55281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 55381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctrmv(CblasRowMajor, uplo, trans, diag, *n, A, LDA, x, *incx); 55481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 55581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 55681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 55781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctrmv(CblasColMajor, uplo, trans, diag, *n, a, *lda, x, *incx); 55881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 55981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctrmv(UNDEFINED, uplo, trans, diag, *n, a, *lda, x, *incx); 56081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 56181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_ctrsv(int *order, char *uplow, char *transp, char *diagn, 56281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *n, CBLAS_TEST_COMPLEX *a, int *lda, CBLAS_TEST_COMPLEX *x, 56381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int *incx) { 56481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 56581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 56681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_TRANSPOSE trans; 56781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 56881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_DIAG diag; 56981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 57081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_transpose_type(transp,&trans); 57181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 57281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_diag_type(diagn,&diag); 57381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 57481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 57581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 57681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A =(CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); 57781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 57881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 57981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 58081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 58181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 58281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctrsv(CblasRowMajor, uplo, trans, diag, *n, A, LDA, x, *incx ); 58381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 58481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 58581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 58681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctrsv(CblasColMajor, uplo, trans, diag, *n, a, *lda, x, *incx ); 58781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 58881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_ctrsv(UNDEFINED, uplo, trans, diag, *n, a, *lda, x, *incx ); 58981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 59081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 59181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_chpr(int *order, char *uplow, int *n, float *alpha, 59281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *ap) { 59381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A, *AP; 59481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,k,LDA; 59581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 59681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 59781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 59881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 59981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 60081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 60181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr(CblasRowMajor, UNDEFINED, *n, *alpha, x, *incx, ap ); 60281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 60381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n; 60481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A = (CBLAS_TEST_COMPLEX* )malloc(LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); 60581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP = ( CBLAS_TEST_COMPLEX* )malloc( (((LDA+1)*LDA)/2)* 60681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray sizeof( CBLAS_TEST_COMPLEX )); 60781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 60881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 60981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ){ 61081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 61181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 61281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 61381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 61481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ){ 61581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 61681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 61781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 61881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 61981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 62081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 62181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ){ 62281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 62381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 62481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 62581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 62681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ){ 62781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 62881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 62981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 63081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 63181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr(CblasRowMajor, uplo, *n, *alpha, x, *incx, AP ); 63281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 63381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 63481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ){ 63581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=AP[ k ].real; 63681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=AP[ k ].imag; 63781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 63881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 63981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ){ 64081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].real=A[ LDA*i+j ].real; 64181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].imag=A[ LDA*i+j ].imag; 64281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 64381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 64481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 64581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 64681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ){ 64781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=AP[ k ].real; 64881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=AP[ k ].imag; 64981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 65081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 65181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ){ 65281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].real=A[ LDA*i+j ].real; 65381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].imag=A[ LDA*i+j ].imag; 65481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 65581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 65681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 65781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(AP); 65881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 65981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 66081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 66181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr(CblasColMajor, uplo, *n, *alpha, x, *incx, ap ); 66281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 66381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr(UNDEFINED, uplo, *n, *alpha, x, *incx, ap ); 66481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 66581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 66681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_chpr2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, 66781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy, 66881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *ap) { 66981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A, *AP; 67081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,k,LDA; 67181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 67281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 67381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 67481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 67581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 67681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo != CblasUpper && uplo != CblasLower ) 67781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr2( CblasRowMajor, UNDEFINED, *n, alpha, x, *incx, y, 67881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray *incy, ap ); 67981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 68081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n; 68181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc( LDA*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); 68281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP=(CBLAS_TEST_COMPLEX*)malloc( (((LDA+1)*LDA)/2)* 68381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray sizeof( CBLAS_TEST_COMPLEX )); 68481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 68581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 68681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ) { 68781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 68881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 68981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 69081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 69181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ) { 69281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 69381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 69481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 69581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 69681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 69781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 69881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ) { 69981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=ap[ k ].real; 70081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=ap[ k ].imag; 70181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 70281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 70381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ) { 70481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].real=A[ LDA*i+j ].real; 70581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray AP[ k ].imag=A[ LDA*i+j ].imag; 70681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 70781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 70881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr2( CblasRowMajor, uplo, *n, alpha, x, *incx, y, *incy, AP ); 70981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (uplo == CblasUpper) { 71081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 71181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=i; j<*n; j++, k++ ) { 71281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=AP[ k ].real; 71381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=AP[ k ].imag; 71481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 71581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 71681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<j+1; i++, k++ ) { 71781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].real=A[ LDA*i+j ].real; 71881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].imag=A[ LDA*i+j ].imag; 71981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 72081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 72181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else { 72281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0, k=0; i<*n; i++ ) 72381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<i+1; j++, k++ ) { 72481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=AP[ k ].real; 72581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=AP[ k ].imag; 72681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 72781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0, k=0; j<*n; j++ ) 72881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=j; i<*n; i++, k++ ) { 72981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].real=A[ LDA*i+j ].real; 73081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray ap[ k ].imag=A[ LDA*i+j ].imag; 73181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 73281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 73381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 73481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(AP); 73581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 73681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 73781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 73881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr2( CblasColMajor, uplo, *n, alpha, x, *incx, y, *incy, ap ); 73981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 74081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_chpr2( UNDEFINED, uplo, *n, alpha, x, *incx, y, *incy, ap ); 74181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 74281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 74381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_cher(int *order, char *uplow, int *n, float *alpha, 74481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *a, int *lda) { 74581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 74681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 74781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 74881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 74981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 75081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 75181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 75281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 75381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof( CBLAS_TEST_COMPLEX )); 75481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 75581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 75681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 75781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 75881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 75981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 76081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 76181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cher(CblasRowMajor, uplo, *n, *alpha, x, *incx, A, LDA ); 76281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 76381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 76481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].real=A[ LDA*i+j ].real; 76581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].imag=A[ LDA*i+j ].imag; 76681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 76781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 76881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 76981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 77081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cher( CblasColMajor, uplo, *n, *alpha, x, *incx, a, *lda ); 77181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 77281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cher( UNDEFINED, uplo, *n, *alpha, x, *incx, a, *lda ); 77381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 77481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 77581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murrayvoid F77_cher2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha, 77681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy, 77781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *a, int *lda) { 77881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 77981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray CBLAS_TEST_COMPLEX *A; 78081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray int i,j,LDA; 78181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray enum CBLAS_UPLO uplo; 78281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 78381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray get_uplo_type(uplow,&uplo); 78481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 78581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray if (*order == TEST_ROW_MJR) { 78681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray LDA = *n+1; 78781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A= ( CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) ); 78881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 78981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 79081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 79181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].real=a[ (*lda)*j+i ].real; 79281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag; 79381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 79481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray 79581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cher2(CblasRowMajor, uplo, *n, alpha, x, *incx, y, *incy, A, LDA ); 79681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( i=0; i<*n; i++ ) 79781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray for( j=0; j<*n; j++ ) { 79881253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].real=A[ LDA*i+j ].real; 79981253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray a[ (*lda)*j+i ].imag=A[ LDA*i+j ].imag; 80081253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 80181253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray free(A); 80281253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray } 80381253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else if (*order == TEST_COL_MJR) 80481253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cher2( CblasColMajor, uplo, *n, alpha, x, *incx, y, *incy, a, *lda); 80581253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray else 80681253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray cblas_cher2( UNDEFINED, uplo, *n, alpha, x, *incx, y, *incy, a, *lda); 80781253e9afbc34b99e9adc22ddf33a1bfac56c697Tim Murray} 808