359 {
360 float *A;
363
365
367 LDA = *k+1;
368 A = ( float* )malloc( (*n+*k)*LDA*sizeof( float ) );
370 for( i=0; i<*k; i++ ){
371 irow=*k-i;
372 jcol=(*k)-i;
373 for( j=jcol; j<*n; j++ )
374 A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
375 }
376 i=*k;
377 irow=*k-i;
378 for( j=0; j<*n; j++ )
379 A[ LDA*j+irow ]=a[ (*lda)*j+i ];
380 }
381 else {
382 i=0;
383 irow=*k-i;
384 for( j=0; j<*n; j++ )
385 A[ LDA*j+irow ]=a[ (*lda)*j+i ];
386 for( i=1; i<*k+1; i++ ){
387 irow=*k-i;
388 jcol=i;
389 for( j=jcol; j<(*n+*k); j++ )
390 A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
391 }
392 }
394 *beta, y, *incy );
395 free(A);
396 }
397 else
399 *beta, y, *incy );
400}
void cblas_ssbmv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo, const CBLAS_INT N, const CBLAS_INT K, const float alpha, const float *A, const CBLAS_INT lda, const float *X, const CBLAS_INT incX, const float beta, float *Y, const CBLAS_INT incY)
void get_uplo_type(char *type, CBLAS_UPLO *uplo)