217 {
218
219 float *A;
222
224
226 LDA = *ku+*kl+2;
227 A = ( float* )malloc( (*n+*kl)*LDA*sizeof( float ) );
228 for( i=0; i<*ku; i++ ){
229 irow=*ku+*kl-i;
230 jcol=(*ku)-i;
231 for( j=jcol; j<*n; j++ )
232 A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
233 }
234 i=*ku;
235 irow=*ku+*kl-i;
236 for( j=0; j<*n; j++ )
237 A[ LDA*j+irow ]=a[ (*lda)*j+i ];
238 for( i=*ku+1; i<*ku+*kl+1; i++ ){
239 irow=*ku+*kl-i;
240 jcol=i-(*ku);
241 for( j=jcol; j<(*n+*kl); j++ )
242 A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
243 }
245 A, LDA, x, *incx, *beta, y, *incy );
246 free(A);
247 }
248 else
250 a, *lda, x, *incx, *beta, y, *incy );
251}
void cblas_sgbmv(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE TransA, const CBLAS_INT M, const CBLAS_INT N, const CBLAS_INT KL, const CBLAS_INT KU, const float alpha, const float *A, const CBLAS_INT lda, const float *X, const CBLAS_INT incX, const float beta, float *Y, const CBLAS_INT incY)
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)