52 {
53
57
60 LDA = *ku+*kl+2;
62 for( i=0; i<*ku; i++ ){
63 irow=*ku+*kl-i;
64 jcol=(*ku)-i;
65 for( j=jcol; j<*n; j++ ){
66 A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].
real;
67 A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].
imag;
68 }
69 }
70 i=*ku;
71 irow=*ku+*kl-i;
72 for( j=0; j<*n; j++ ){
73 A[ LDA*j+irow ].
real=a[ (*lda)*j+i ].
real;
74 A[ LDA*j+irow ].
imag=a[ (*lda)*j+i ].
imag;
75 }
76 for( i=*ku+1; i<*ku+*kl+1; i++ ){
77 irow=*ku+*kl-i;
78 jcol=i-(*ku);
79 for( j=jcol; j<(*n+*kl); j++ ){
80 A[ LDA*j+irow ].
real=a[ (*lda)*(j-jcol)+i ].real;
81 A[ LDA*j+irow ].
imag=a[ (*lda)*(j-jcol)+i ].imag;
82 }
83 }
84 cblas_cgbmv(
CblasRowMajor, trans, *m, *n, *kl, *ku, alpha, A, LDA, x,
85 *incx, beta, y, *incy );
86 free(A);
87 }
89 cblas_cgbmv(
CblasColMajor, trans, *m, *n, *kl, *ku, alpha, a, *lda, x,
90 *incx, beta, y, *incy );
91 else
92 cblas_cgbmv(
UNDEFINED, trans, *m, *n, *kl, *ku, alpha, a, *lda, x,
93 *incx, beta, y, *incy );
94}
void cblas_cgbmv(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE TransA, const CBLAS_INT M, const CBLAS_INT N, const CBLAS_INT KL, const CBLAS_INT KU, const void *alpha, const void *A, const CBLAS_INT lda, const void *X, const CBLAS_INT incX, const void *beta, void *Y, const CBLAS_INT incY)
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)