LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ F77_zhbmv()

void F77_zhbmv ( int *  layout,
char *  uplow,
int *  n,
int *  k,
CBLAS_TEST_ZOMPLEX alpha,
CBLAS_TEST_ZOMPLEX a,
int *  lda,
CBLAS_TEST_ZOMPLEX x,
int *  incx,
CBLAS_TEST_ZOMPLEX beta,
CBLAS_TEST_ZOMPLEX y,
int *  incy 
)

Definition at line 175 of file c_zblas2.c.

178  {
179 
181 int i,irow,j,jcol,LDA;
182 
183  CBLAS_UPLO uplo;
184 
185  get_uplo_type(uplow,&uplo);
186 
187  if (*layout == TEST_ROW_MJR) {
188  if (uplo != CblasUpper && uplo != CblasLower )
189  cblas_zhbmv(CblasRowMajor, UNDEFINED, *n, *k, alpha, a, *lda, x,
190  *incx, beta, y, *incy );
191  else {
192  LDA = *k+2;
193  A =(CBLAS_TEST_ZOMPLEX*)malloc((*n+*k)*LDA*sizeof(CBLAS_TEST_ZOMPLEX));
194  if (uplo == CblasUpper) {
195  for( i=0; i<*k; i++ ){
196  irow=*k-i;
197  jcol=(*k)-i;
198  for( j=jcol; j<*n; j++ ) {
199  A[ LDA*(j-jcol)+irow ].real=a[ (*lda)*j+i ].real;
200  A[ LDA*(j-jcol)+irow ].imag=a[ (*lda)*j+i ].imag;
201  }
202  }
203  i=*k;
204  irow=*k-i;
205  for( j=0; j<*n; j++ ) {
206  A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real;
207  A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag;
208  }
209  }
210  else {
211  i=0;
212  irow=*k-i;
213  for( j=0; j<*n; j++ ) {
214  A[ LDA*j+irow ].real=a[ (*lda)*j+i ].real;
215  A[ LDA*j+irow ].imag=a[ (*lda)*j+i ].imag;
216  }
217  for( i=1; i<*k+1; i++ ){
218  irow=*k-i;
219  jcol=i;
220  for( j=jcol; j<(*n+*k); j++ ) {
221  A[ LDA*j+irow ].real=a[ (*lda)*(j-jcol)+i ].real;
222  A[ LDA*j+irow ].imag=a[ (*lda)*(j-jcol)+i ].imag;
223  }
224  }
225  }
226  cblas_zhbmv( CblasRowMajor, uplo, *n, *k, alpha, A, LDA, x, *incx,
227  beta, y, *incy );
228  free(A);
229  }
230  }
231  else if (*layout == TEST_COL_MJR)
232  cblas_zhbmv(CblasColMajor, uplo, *n, *k, alpha, a, *lda, x, *incx,
233  beta, y, *incy );
234  else
235  cblas_zhbmv(UNDEFINED, uplo, *n, *k, alpha, a, *lda, x, *incx,
236  beta, y, *incy );
237 }
void cblas_zhbmv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo, const int N, const int K, const void *alpha, const void *A, const int lda, const void *X, const int incX, const void *beta, void *Y, const int incY)
Definition: cblas_zhbmv.c:12
#define LDA
Definition: example_user.c:12
#define UNDEFINED
Definition: cblas_test.h:19
#define TEST_ROW_MJR
Definition: cblas_test.h:12
void get_uplo_type(char *type, CBLAS_UPLO *uplo)
Definition: auxiliary.c:18
CBLAS_UPLO
Definition: cblas.h:21
#define TEST_COL_MJR
Definition: cblas_test.h:16
Here is the call graph for this function: