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