LAPACK  3.10.0 LAPACK: Linear Algebra PACKage

◆ F77_stbsv()

 void F77_stbsv ( int * layout, char * uplow, char * transp, char * diagn, int * n, int * k, float * a, int * lda, float * x, int * incx )

Definition at line 271 of file c_sblas2.c.

272  {
273  float *A;
274  int irow, jcol, i, j, LDA;
275  CBLAS_TRANSPOSE trans;
276  CBLAS_UPLO uplo;
277  CBLAS_DIAG diag;
278
279  get_transpose_type(transp,&trans);
280  get_uplo_type(uplow,&uplo);
281  get_diag_type(diagn,&diag);
282
283  if (*layout == TEST_ROW_MJR) {
284  LDA = *k+1;
285  A = ( float* )malloc( (*n+*k)*LDA*sizeof( float ) );
286  if (uplo == CblasUpper) {
287  for( i=0; i<*k; i++ ){
288  irow=*k-i;
289  jcol=(*k)-i;
290  for( j=jcol; j<*n; j++ )
291  A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
292  }
293  i=*k;
294  irow=*k-i;
295  for( j=0; j<*n; j++ )
296  A[ LDA*j+irow ]=a[ (*lda)*j+i ];
297  }
298  else {
299  i=0;
300  irow=*k-i;
301  for( j=0; j<*n; j++ )
302  A[ LDA*j+irow ]=a[ (*lda)*j+i ];
303  for( i=1; i<*k+1; i++ ){
304  irow=*k-i;
305  jcol=i;
306  for( j=jcol; j<(*n+*k); j++ )
307  A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
308  }
309  }
310  cblas_stbsv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA, x, *incx);
311  free(A);
312  }
313  else
314  cblas_stbsv(CblasColMajor, uplo, trans, diag, *n, *k, a, *lda, x, *incx);
315 }
CBLAS_UPLO
Definition: cblas.h:21
@ CblasUpper
Definition: cblas.h:21
CBLAS_TRANSPOSE
Definition: cblas.h:20
@ CblasColMajor
Definition: cblas.h:19
@ CblasRowMajor
Definition: cblas.h:19
CBLAS_DIAG
Definition: cblas.h:22
void cblas_stbsv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, const CBLAS_INDEX N, const CBLAS_INDEX K, const float *A, const CBLAS_INDEX lda, float *X, const CBLAS_INDEX incX)
Definition: cblas_stbsv.c:10
void get_diag_type(char *type, CBLAS_DIAG *diag)
Definition: auxiliary.c:25
#define TEST_ROW_MJR
Definition: cblas_test.h:12
void get_uplo_type(char *type, CBLAS_UPLO *uplo)
Definition: auxiliary.c:18
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)
Definition: auxiliary.c:8
#define LDA
Definition: example_user.c:12
Here is the call graph for this function:
Here is the caller graph for this function: