LAPACK  3.6.1
LAPACK: Linear Algebra PACKage
void F77_dsbmv ( int *  layout,
char *  uplow,
int *  n,
int *  k,
double *  alpha,
double *  a,
int *  lda,
double *  x,
int *  incx,
double *  beta,
double *  y,
int *  incy 
)

Definition at line 317 of file c_dblas2.c.

319  {
320  double *A;
321  int i,j,irow,jcol,LDA;
322  CBLAS_UPLO uplo;
323 
324  get_uplo_type(uplow,&uplo);
325 
326  if (*layout == TEST_ROW_MJR) {
327  LDA = *k+1;
328  A = ( double* )malloc( (*n+*k)*LDA*sizeof( double ) );
329  if (uplo == CblasUpper) {
330  for( i=0; i<*k; i++ ){
331  irow=*k-i;
332  jcol=(*k)-i;
333  for( j=jcol; j<*n; j++ )
334  A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
335  }
336  i=*k;
337  irow=*k-i;
338  for( j=0; j<*n; j++ )
339  A[ LDA*j+irow ]=a[ (*lda)*j+i ];
340  }
341  else {
342  i=0;
343  irow=*k-i;
344  for( j=0; j<*n; j++ )
345  A[ LDA*j+irow ]=a[ (*lda)*j+i ];
346  for( i=1; i<*k+1; i++ ){
347  irow=*k-i;
348  jcol=i;
349  for( j=jcol; j<(*n+*k); j++ )
350  A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
351  }
352  }
353  cblas_dsbmv(CblasRowMajor, uplo, *n, *k, *alpha, A, LDA, x, *incx,
354  *beta, y, *incy );
355  free(A);
356  }
357  else
358  cblas_dsbmv(CblasColMajor, uplo, *n, *k, *alpha, a, *lda, x, *incx,
359  *beta, y, *incy );
360 }
#define LDA
Definition: example_user.c:12
void cblas_dsbmv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo, const int N, const int K, const double alpha, const double *A, const int lda, const double *X, const int incX, const double beta, double *Y, const int incY)
Definition: cblas_dsbmv.c:12
CBLAS_UPLO
Definition: cblas.h:21
void get_uplo_type(char *type, CBLAS_UPLO *uplo)
Definition: auxiliary.c:18
#define TEST_ROW_MJR
Definition: cblas_test.h:12

Here is the call graph for this function: