11 #include "cblas_f77.h" 12 void cblas_cgbmv(
const CBLAS_LAYOUT layout,
13 const CBLAS_TRANSPOSE TransA,
const CBLAS_INT M,
const CBLAS_INT N,
14 const CBLAS_INT KL,
const CBLAS_INT KU,
15 const void *alpha,
const void *A,
const CBLAS_INT lda,
16 const void *X,
const CBLAS_INT incX,
const void *beta,
17 void *Y,
const CBLAS_INT incY)
26 F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
27 F77_INT F77_KL=KL,F77_KU=KU;
37 CBLAS_INT n=0, i=0, incx=incX;
38 const float *xx= (
float *)X, *alp= (
float *)alpha, *bet = (
float *)beta;
39 float ALPHA[2],BETA[2];
40 CBLAS_INT tincY, tincx;
41 float *x=(
float *)X, *y=(
float *)Y, *st=0, *tx=0;
42 extern int CBLAS_CallFromC;
43 extern int RowMajorStrg;
47 if (layout == CblasColMajor)
49 if (TransA == CblasNoTrans) TA =
'N';
50 else if (TransA == CblasTrans) TA =
'T';
51 else if (TransA == CblasConjTrans) TA =
'C';
54 cblas_xerbla(2,
"cblas_cgbmv",
"Illegal TransA setting, %d\n", TransA);
60 F77_TA = C2F_CHAR(&TA);
62 F77_cgbmv(F77_TA, &F77_M, &F77_N, &F77_KL, &F77_KU, alpha,
63 A, &F77_lda, X, &F77_incX, beta, Y, &F77_incY);
65 else if (layout == CblasRowMajor)
68 if (TransA == CblasNoTrans) TA =
'T';
69 else if (TransA == CblasTrans) TA =
'N';
70 else if (TransA == CblasConjTrans)
80 x = malloc(n*
sizeof(
float));
128 else x = (
float *) X;
134 cblas_xerbla(2,
"cblas_cgbmv",
"Illegal TransA setting, %d\n", TransA);
140 F77_TA = C2F_CHAR(&TA);
142 if (TransA == CblasConjTrans)
143 F77_cgbmv(F77_TA, &F77_N, &F77_M, &F77_KU, &F77_KL, ALPHA,
144 A ,&F77_lda, x,&F77_incX, BETA, Y, &F77_incY);
146 F77_cgbmv(F77_TA, &F77_N, &F77_M, &F77_KU, &F77_KL, alpha,
147 A ,&F77_lda, x,&F77_incX, beta, Y, &F77_incY);
148 if (TransA == CblasConjTrans)
162 else cblas_xerbla(1,
"cblas_cgbmv",
"Illegal layout setting, %d\n", layout);