189 {
190
191 double *A;
194
196
198 LDA = *ku+*kl+2;
199 A = ( double* )malloc( (*n+*kl)*LDA*sizeof( double ) );
200 for( i=0; i<*ku; i++ ){
201 irow=*ku+*kl-i;
202 jcol=(*ku)-i;
203 for( j=jcol; j<*n; j++ )
204 A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
205 }
206 i=*ku;
207 irow=*ku+*kl-i;
208 for( j=0; j<*n; j++ )
209 A[ LDA*j+irow ]=a[ (*lda)*j+i ];
210 for( i=*ku+1; i<*ku+*kl+1; i++ ){
211 irow=*ku+*kl-i;
212 jcol=i-(*ku);
213 for( j=jcol; j<(*n+*kl); j++ )
214 A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
215 }
217 A, LDA, x, *incx, *beta, y, *incy );
218 free(A);
219 }
220 else
222 a, *lda, x, *incx, *beta, y, *incy );
223}
void cblas_dgbmv(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE TransA, const CBLAS_INT M, const CBLAS_INT N, const CBLAS_INT KL, const CBLAS_INT KU, const double alpha, const double *A, const CBLAS_INT lda, const double *X, const CBLAS_INT incX, const double beta, double *Y, const CBLAS_INT incY)
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)