v0.9.0
Macros | Functions
cblas_dtpmv.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_UL   &UL
 
#define F77_DI   &DI
 
#define F77_N   N
 
#define F77_incX   incX
 

Functions

void cblas_dtpmv (const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const int N, const double *Ap, double *X, const int incX)
 

Macro Definition Documentation

◆ F77_DI

#define F77_DI   &DI

◆ F77_incX

#define F77_incX   incX

◆ F77_N

#define F77_N   N

◆ F77_TA

#define F77_TA   &TA

◆ F77_UL

#define F77_UL   &UL

Function Documentation

◆ cblas_dtpmv()

void cblas_dtpmv ( const enum CBLAS_ORDER  order,
const enum CBLAS_UPLO  Uplo,
const enum CBLAS_TRANSPOSE  TransA,
const enum CBLAS_DIAG  Diag,
const int  N,
const double Ap,
double X,
const int  incX 
)

Definition at line 10 of file cblas_dtpmv.c.

13 {
14  char TA;
15  char UL;
16  char DI;
17 #ifdef F77_CHAR
18  F77_CHAR F77_TA, F77_UL, F77_DI;
19 #else
20  #define F77_TA &TA
21  #define F77_UL &UL
22  #define F77_DI &DI
23 #endif
24 #ifdef F77_INT
25  F77_INT F77_N=N, F77_incX=incX;
26 #else
27  #define F77_N N
28  #define F77_incX incX
29 #endif
30  extern int CBLAS_CallFromC;
31  extern int RowMajorStrg;
32  RowMajorStrg = 0;
33 
34  CBLAS_CallFromC = 1;
35  if (order == CblasColMajor)
36  {
37  if (Uplo == CblasUpper) UL = 'U';
38  else if (Uplo == CblasLower) UL = 'L';
39  else
40  {
41  cblas_xerbla(2, "cblas_dtpmv","Illegal Uplo setting, %d\n", Uplo);
42  CBLAS_CallFromC = 0;
43  RowMajorStrg = 0;
44  return;
45  }
46  if (TransA == CblasNoTrans) TA = 'N';
47  else if (TransA == CblasTrans) TA = 'T';
48  else if (TransA == CblasConjTrans) TA = 'C';
49  else
50  {
51  cblas_xerbla(3, "cblas_dtpmv","Illegal TransA setting, %d\n", TransA);
52  CBLAS_CallFromC = 0;
53  RowMajorStrg = 0;
54  return;
55  }
56  if (Diag == CblasUnit) DI = 'U';
57  else if (Diag == CblasNonUnit) DI = 'N';
58  else
59  {
60  cblas_xerbla(4, "cblas_dtpmv","Illegal Diag setting, %d\n", Diag);
61  CBLAS_CallFromC = 0;
62  RowMajorStrg = 0;
63  return;
64  }
65  #ifdef F77_CHAR
66  F77_UL = C2F_CHAR(&UL);
67  F77_TA = C2F_CHAR(&TA);
68  F77_DI = C2F_CHAR(&DI);
69  #endif
70  F77_dtpmv( F77_UL, F77_TA, F77_DI, &F77_N, Ap, X, &F77_incX);
71  }
72  else if (order == CblasRowMajor)
73  {
74  RowMajorStrg = 1;
75  if (Uplo == CblasUpper) UL = 'L';
76  else if (Uplo == CblasLower) UL = 'U';
77  else
78  {
79  cblas_xerbla(2, "cblas_dtpmv","Illegal Uplo setting, %d\n", Uplo);
80  CBLAS_CallFromC = 0;
81  RowMajorStrg = 0;
82  return;
83  }
84 
85  if (TransA == CblasNoTrans) TA = 'T';
86  else if (TransA == CblasTrans) TA = 'N';
87  else if (TransA == CblasConjTrans) TA = 'N';
88  else
89  {
90  cblas_xerbla(3, "cblas_dtpmv","Illegal TransA setting, %d\n", TransA);
91  CBLAS_CallFromC = 0;
92  RowMajorStrg = 0;
93  return;
94  }
95 
96  if (Diag == CblasUnit) DI = 'U';
97  else if (Diag == CblasNonUnit) DI = 'N';
98  else
99  {
100  cblas_xerbla(4, "cblas_dtpmv","Illegal Diag setting, %d\n", Diag);
101  CBLAS_CallFromC = 0;
102  RowMajorStrg = 0;
103  return;
104  }
105  #ifdef F77_CHAR
106  F77_UL = C2F_CHAR(&UL);
107  F77_TA = C2F_CHAR(&TA);
108  F77_DI = C2F_CHAR(&DI);
109  #endif
110 
111  F77_dtpmv( F77_UL, F77_TA, F77_DI, &F77_N, Ap, X,&F77_incX);
112  }
113  else cblas_xerbla(1, "cblas_dtpmv", "Illegal Order setting, %d\n", order);
114  CBLAS_CallFromC = 0;
115  RowMajorStrg = 0;
116  return;
117 }
#define F77_UL
int CBLAS_CallFromC
Definition: cblas_globals.c:1
void F77_dtpmv(FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT)
#define F77_N
void cblas_xerbla(int p, const char *rout, const char *form,...)
Definition: cblas_xerbla.c:8
#define F77_TA
#define F77_DI
#define F77_incX
const int N
Definition: speed_test.cpp:3
int RowMajorStrg
Definition: cblas_globals.c:2