LAPACK
3.9.0
LAPACK: Linear Algebra PACKage
cblas_sgemv.c
Go to the documentation of this file.
1
/*
2
*
3
* cblas_sgemv.c
4
* This program is a C interface to sgemv.
5
* Written by Keita Teranishi
6
* 4/6/1998
7
*
8
*/
9
#include "
cblas.h
"
10
#include "
cblas_f77.h
"
11
void
cblas_sgemv
(
const
CBLAS_LAYOUT
layout,
12
const
CBLAS_TRANSPOSE
TransA,
const
int
M,
const
int
N
,
13
const
float
alpha,
const
float
*A,
const
int
lda,
14
const
float
*X,
const
int
incX,
const
float
beta,
15
float
*Y,
const
int
incY)
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
33
extern
int
CBLAS_CallFromC
;
34
extern
int
RowMajorStrg
;
35
RowMajorStrg
= 0;
36
37
CBLAS_CallFromC
= 1;
38
if
(layout ==
CblasColMajor
)
39
{
40
if
(TransA ==
CblasNoTrans
) TA =
'N'
;
41
else
if
(TransA ==
CblasTrans
) TA =
'T'
;
42
else
if
(TransA ==
CblasConjTrans
) TA =
'C'
;
43
else
44
{
45
cblas_xerbla
(2,
"cblas_sgemv"
,
"Illegal TransA setting, %d\n"
, TransA);
46
CBLAS_CallFromC
= 0;
47
RowMajorStrg
= 0;
48
}
49
#ifdef F77_CHAR
50
F77_TA
= C2F_CHAR(&TA);
51
#endif
52
F77_sgemv
(
F77_TA
, &
F77_M
, &
F77_N
, &alpha, A, &
F77_lda
, X, &
F77_incX
,
53
&beta, Y, &
F77_incY
);
54
}
55
else
if
(layout ==
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_sgemv"
,
"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_sgemv
(
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_sgemv"
,
"Illegal layout setting, %d\n"
, layout);
75
CBLAS_CallFromC
= 0;
76
RowMajorStrg
= 0;
77
return
;
78
}
cblas_f77.h
CBLAS_TRANSPOSE
CBLAS_TRANSPOSE
Definition:
cblas.h:20
F77_M
#define F77_M
F77_lda
#define F77_lda
cblas_xerbla
void cblas_xerbla(int p, const char *rout, const char *form,...)
Definition:
cblas_xerbla.c:8
CblasColMajor
Definition:
cblas.h:19
cblas_sgemv
void cblas_sgemv(const CBLAS_LAYOUT layout, const CBLAS_TRANSPOSE TransA, const int M, const int N, const float alpha, const float *A, const int lda, const float *X, const int incX, const float beta, float *Y, const int incY)
Definition:
cblas_sgemv.c:11
F77_sgemv
#define F77_sgemv
Definition:
cblas_f77.h:126
CblasTrans
Definition:
cblas.h:20
CBLAS_CallFromC
int CBLAS_CallFromC
Definition:
cblas_globals.c:1
cblas.h
CBLAS_LAYOUT
CBLAS_LAYOUT
Definition:
cblas.h:19
CblasRowMajor
Definition:
cblas.h:19
F77_N
#define F77_N
RowMajorStrg
int RowMajorStrg
Definition:
cblas_globals.c:2
F77_incY
#define F77_incY
CblasNoTrans
Definition:
cblas.h:20
F77_TA
#define F77_TA
F77_incX
#define F77_incX
N
#define N
Definition:
example_user.c:10
CblasConjTrans
Definition:
cblas.h:20
CBLAS
src
cblas_sgemv.c
Generated on Wed May 5 2021 15:10:30 for LAPACK by
1.8.16