LAPACK  3.6.1
LAPACK: Linear Algebra PACKage
void F77_sgbmv ( int *  layout,
char *  transp,
int *  m,
int *  n,
int *  kl,
int *  ku,
float *  alpha,
float *  a,
int *  lda,
float *  x,
int *  incx,
float *  beta,
float *  y,
int *  incy 
)

Definition at line 187 of file c_sblas2.c.

189  {
190 
191  float *A;
192  int i,irow,j,jcol,LDA;
193  CBLAS_TRANSPOSE trans;
194 
195  get_transpose_type(transp, &trans);
196 
197  if (*layout == TEST_ROW_MJR) {
198  LDA = *ku+*kl+2;
199  A = ( float* )malloc( (*n+*kl)*LDA*sizeof( float ) );
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  }
216  cblas_sgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
217  A, LDA, x, *incx, *beta, y, *incy );
218  free(A);
219  }
220  else
221  cblas_sgbmv( CblasColMajor, trans, *m, *n, *kl, *ku, *alpha,
222  a, *lda, x, *incx, *beta, y, *incy );
223 }
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)
Definition: auxiliary.c:8
CBLAS_TRANSPOSE
Definition: cblas.h:20
#define LDA
Definition: example_user.c:12
void cblas_sgbmv(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE TransA, const int M, const int N, const int KL, const int KU, const float alpha, const float *A, const int lda, const float *X, const int incX, const float beta, float *Y, const int incY)
Definition: cblas_sgbmv.c:12
#define TEST_ROW_MJR
Definition: cblas_test.h:12

Here is the call graph for this function: