LAPACK 3.12.0
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 187 of file c_sblas2.c.

189 {
190
191 float *A;
192 CBLAS_INT i,irow,j,jcol,LDA;
193 CBLAS_TRANSPOSE trans;
194
195 get_transpose_type(transp, &trans);
196
197 if (*layout == TEST_ROW_MJR) {
198 LDA = *ku+*kl+2;
199 A = ( float* )malloc( (*n+*kl)*LDA*sizeof( float ) );
200 for( i=0; i<*ku; i++ ){
201 irow=*ku+*kl-i;
202 jcol=(*ku)-i;
203 for( j=jcol; j<*n; j++ )
204 A[ LDA*(j-jcol)+irow ]=a[ (*lda)*j+i ];
205 }
206 i=*ku;
207 irow=*ku+*kl-i;
208 for( j=0; j<*n; j++ )
209 A[ LDA*j+irow ]=a[ (*lda)*j+i ];
210 for( i=*ku+1; i<*ku+*kl+1; i++ ){
211 irow=*ku+*kl-i;
212 jcol=i-(*ku);
213 for( j=jcol; j<(*n+*kl); j++ )
214 A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
215 }
216 cblas_sgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
217 A, LDA, x, *incx, *beta, y, *incy );
218 free(A);
219 }
220 else
221 cblas_sgbmv( CblasColMajor, trans, *m, *n, *kl, *ku, *alpha,
222 a, *lda, x, *incx, *beta, y, *incy );
223}
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:12
void get_transpose_type(char *type, CBLAS_TRANSPOSE *trans)
Definition auxiliary.c:8
Here is the call graph for this function: