LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ F77_sgbmv()

void F77_sgbmv ( CBLAS_INT * layout,
char * transp,
CBLAS_INT * m,
CBLAS_INT * n,
CBLAS_INT * kl,
CBLAS_INT * ku,
float * alpha,
float * a,
CBLAS_INT * lda,
float * x,
CBLAS_INT * incx,
float * beta,
float * y,
CBLAS_INT * incy )

Definition at line 211 of file c_sblas2.c.

217 {
218
219 float *A;
220 CBLAS_INT i,irow,j,jcol,LDA;
221 CBLAS_TRANSPOSE trans;
222
223 get_transpose_type(transp, &trans);
224
225 if (*layout == TEST_ROW_MJR) {
226 LDA = *ku+*kl+2;
227 A = ( float* )malloc( (*n+*kl)*LDA*sizeof( float ) );
228 for( i=0; i<*ku; i++ ){
229 irow=*ku+*kl-i;
230 jcol=(*ku)-i;
231 for( j=jcol; j<*n; j++ )
232 A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
233 }
234 i=*ku;
235 irow=*ku+*kl-i;
236 for( j=0; j<*n; j++ )
237 A[ LDA*j+irow ]=a[ (*lda)*j+i ];
238 for( i=*ku+1; i<*ku+*kl+1; i++ ){
239 irow=*ku+*kl-i;
240 jcol=i-(*ku);
241 for( j=jcol; j<(*n+*kl); j++ )
242 A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
243 }
244 cblas_sgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
245 A, LDA, x, *incx, *beta, y, *incy );
246 free(A);
247 }
248 else
249 cblas_sgbmv( CblasColMajor, trans, *m, *n, *kl, *ku, *alpha,
250 a, *lda, x, *incx, *beta, y, *incy );
251}
CBLAS_TRANSPOSE
Definition cblas.h:40
void cblas_sgbmv(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE TransA, const CBLAS_INT M, const CBLAS_INT N, const CBLAS_INT KL, const CBLAS_INT KU, 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)
Definition cblas_sgbmv.c:12
@ CblasColMajor
Definition cblas.h:39
@ CblasRowMajor
Definition cblas.h:39
#define CBLAS_INT
Definition cblas.h:24
#define TEST_ROW_MJR
Definition cblas_test.h:21
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)
Definition auxiliary.c:8
Here is the call graph for this function: