LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ F77_sspmv()

void F77_sspmv ( int *  layout,
char *  uplow,
int *  n,
float *  alpha,
float *  ap,
float *  x,
int *  incx,
float *  beta,
float *  y,
int *  incy 
)

Definition at line 362 of file c_sblas2.c.

363  {
364  float *A,*AP;
365  int i,j,k,LDA;
366  CBLAS_UPLO uplo;
367 
368  get_uplo_type(uplow,&uplo);
369 
370  if (*layout == TEST_ROW_MJR) {
371  LDA = *n;
372  A = ( float* )malloc( LDA*LDA*sizeof( float ) );
373  AP = ( float* )malloc( (((LDA+1)*LDA)/2)*sizeof( float ) );
374  if (uplo == CblasUpper) {
375  for( j=0, k=0; j<*n; j++ )
376  for( i=0; i<j+1; i++, k++ )
377  A[ LDA*i+j ]=ap[ k ];
378  for( i=0, k=0; i<*n; i++ )
379  for( j=i; j<*n; j++, k++ )
380  AP[ k ]=A[ LDA*i+j ];
381  }
382  else {
383  for( j=0, k=0; j<*n; j++ )
384  for( i=j; i<*n; i++, k++ )
385  A[ LDA*i+j ]=ap[ k ];
386  for( i=0, k=0; i<*n; i++ )
387  for( j=0; j<i+1; j++, k++ )
388  AP[ k ]=A[ LDA*i+j ];
389  }
390  cblas_sspmv( CblasRowMajor, uplo, *n, *alpha, AP, x, *incx, *beta, y,
391  *incy );
392  free(A); free(AP);
393  }
394  else
395  cblas_sspmv( CblasColMajor, uplo, *n, *alpha, ap, x, *incx, *beta, y,
396  *incy );
397 }
void cblas_sspmv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo, const CBLAS_INDEX N, const float alpha, const float *Ap, const float *X, const CBLAS_INDEX incX, const float beta, float *Y, const CBLAS_INDEX incY)
Definition: cblas_sspmv.c:11
CBLAS_UPLO
Definition: cblas.h:21
@ CblasUpper
Definition: cblas.h:21
@ CblasColMajor
Definition: cblas.h:19
@ CblasRowMajor
Definition: cblas.h:19
#define TEST_ROW_MJR
Definition: cblas_test.h:12
void get_uplo_type(char *type, CBLAS_UPLO *uplo)
Definition: auxiliary.c:18
#define LDA
Definition: example_user.c:12
Here is the call graph for this function:
Here is the caller graph for this function: