v0.8.23
Macros | Functions
cblas_dgemv.c File Reference
#include "cblas.h"
#include "cblas_f77.h"

Go to the source code of this file.

Macros

#define F77_TA   &TA
 
#define F77_M   M
 
#define F77_N   N
 
#define F77_lda   lda
 
#define F77_incX   incX
 
#define F77_incY   incY
 

Functions

void cblas_dgemv (const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const double alpha, const double *A, const int lda, const double *X, const int incX, const double beta, double *Y, const int incY)
 

Macro Definition Documentation

◆ F77_incX

#define F77_incX   incX

◆ F77_incY

#define F77_incY   incY

◆ F77_lda

#define F77_lda   lda

◆ F77_M

#define F77_M   M

◆ F77_N

#define F77_N   N

◆ F77_TA

#define F77_TA   &TA

Function Documentation

◆ cblas_dgemv()

void cblas_dgemv ( const enum CBLAS_ORDER  order,
const enum CBLAS_TRANSPOSE  TransA,
const int  M,
const int  N,
const double  alpha,
const double A,
const int  lda,
const double X,
const int  incX,
const double  beta,
double Y,
const int  incY 
)

Definition at line 11 of file cblas_dgemv.c.

16 {
17  char TA;
18 #ifdef F77_CHAR
19  F77_CHAR F77_TA;
20 #else
21  #define F77_TA &TA
22 #endif
23 #ifdef F77_INT
24  F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
25 #else
26  #define F77_M M
27  #define F77_N N
28  #define F77_lda lda
29  #define F77_incX incX
30  #define F77_incY incY
31 #endif
32  extern int CBLAS_CallFromC;
33  extern int RowMajorStrg;
34  RowMajorStrg = 0;
35 
36  CBLAS_CallFromC = 1;
37  if (order == CblasColMajor)
38  {
39  if (TransA == CblasNoTrans) TA = 'N';
40  else if (TransA == CblasTrans) TA = 'T';
41  else if (TransA == CblasConjTrans) TA = 'C';
42  else
43  {
44  cblas_xerbla(2, "cblas_dgemv","Illegal TransA setting, %d\n", TransA);
45  CBLAS_CallFromC = 0;
46  RowMajorStrg = 0;
47  return;
48  }
49  #ifdef F77_CHAR
50  F77_TA = C2F_CHAR(&TA);
51  #endif
52  F77_dgemv(F77_TA, &F77_M, &F77_N, &alpha, A, &F77_lda, X, &F77_incX,
53  &beta, Y, &F77_incY);
54  }
55  else if (order == CblasRowMajor)
56  {
57  RowMajorStrg = 1;
58  if (TransA == CblasNoTrans) TA = 'T';
59  else if (TransA == CblasTrans) TA = 'N';
60  else if (TransA == CblasConjTrans) TA = 'N';
61  else
62  {
63  cblas_xerbla(2, "cblas_dgemv","Illegal TransA setting, %d\n", TransA);
64  CBLAS_CallFromC = 0;
65  RowMajorStrg = 0;
66  return;
67  }
68  #ifdef F77_CHAR
69  F77_TA = C2F_CHAR(&TA);
70  #endif
71  F77_dgemv(F77_TA, &F77_N, &F77_M, &alpha, A, &F77_lda, X,
72  &F77_incX, &beta, Y, &F77_incY);
73  }
74  else cblas_xerbla(1, "cblas_dgemv", "Illegal Order setting, %d\n", order);
75  CBLAS_CallFromC = 0;
76  RowMajorStrg = 0;
77  return;
78 }
#define F77_lda
#define F77_N
#define F77_incY
#define F77_incX
int CBLAS_CallFromC
Definition: cblas_globals.c:1
void F77_dgemv(FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT)
#define F77_M
void cblas_xerbla(int p, const char *rout, const char *form,...)
Definition: cblas_xerbla.c:8
const int N
Definition: speed_test.cpp:3
const int order
approximation order
#define F77_TA
int RowMajorStrg
Definition: cblas_globals.c:2