LAPACK
3.12.1
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
cblas_ssyrk.c
Go to the documentation of this file.
1
/*
2
*
3
* cblas_ssyrk.c
4
* This program is a C interface to ssyrk.
5
* Written by Keita Teranishi
6
* 4/8/1998
7
*
8
*/
9
10
#include "
cblas.h
"
11
#include "
cblas_f77.h
"
12
void
API_SUFFIX
(
cblas_ssyrk
)(
const
CBLAS_LAYOUT
layout,
const
CBLAS_UPLO
Uplo,
13
const
CBLAS_TRANSPOSE
Trans,
const
CBLAS_INT
N,
const
CBLAS_INT
K,
14
const
float
alpha,
const
float
*A,
const
CBLAS_INT
lda,
15
const
float
beta,
float
*C,
const
CBLAS_INT
ldc)
16
{
17
char
UL, TR;
18
#ifdef F77_CHAR
19
F77_CHAR
F77_TR
,
F77_UL
;
20
#else
21
#define F77_TR &TR
22
#define F77_UL &UL
23
#endif
24
25
#ifdef F77_INT
26
F77_INT
F77_N
=N,
F77_K
=K,
F77_lda
=lda;
27
F77_INT
F77_ldc
=ldc;
28
#else
29
#define F77_N N
30
#define F77_K K
31
#define F77_lda lda
32
#define F77_ldc ldc
33
#endif
34
35
extern
int
CBLAS_CallFromC
;
36
extern
int
RowMajorStrg
;
37
RowMajorStrg
= 0;
38
CBLAS_CallFromC
= 1;
39
40
if
( layout ==
CblasColMajor
)
41
{
42
43
if
( Uplo ==
CblasUpper
) UL=
'U'
;
44
else
if
( Uplo ==
CblasLower
) UL=
'L'
;
45
else
46
{
47
API_SUFFIX
(
cblas_xerbla
)(2,
"cblas_ssyrk"
,
48
"Illegal Uplo setting, %d\n"
, Uplo);
49
CBLAS_CallFromC
= 0;
50
RowMajorStrg
= 0;
51
return
;
52
}
53
54
if
( Trans ==
CblasTrans
) TR =
'T'
;
55
else
if
( Trans ==
CblasConjTrans
) TR=
'C'
;
56
else
if
( Trans ==
CblasNoTrans
) TR=
'N'
;
57
else
58
{
59
API_SUFFIX
(
cblas_xerbla
)(3,
"cblas_ssyrk"
,
60
"Illegal Trans setting, %d\n"
, Trans);
61
CBLAS_CallFromC
= 0;
62
RowMajorStrg
= 0;
63
return
;
64
}
65
66
67
#ifdef F77_CHAR
68
F77_UL
= C2F_CHAR(&UL);
69
F77_TR
= C2F_CHAR(&TR);
70
#endif
71
72
F77_ssyrk
(
F77_UL
,
F77_TR
, &
F77_N
, &
F77_K
, &alpha, A, &
F77_lda
, &beta, C, &
F77_ldc
);
73
}
else
if
(layout ==
CblasRowMajor
)
74
{
75
RowMajorStrg
= 1;
76
if
( Uplo ==
CblasUpper
) UL=
'L'
;
77
else
if
( Uplo ==
CblasLower
) UL=
'U'
;
78
else
79
{
80
API_SUFFIX
(
cblas_xerbla
)(3,
"cblas_ssyrk"
,
81
"Illegal Uplo setting, %d\n"
, Uplo);
82
CBLAS_CallFromC
= 0;
83
RowMajorStrg
= 0;
84
return
;
85
}
86
if
( Trans ==
CblasTrans
) TR =
'N'
;
87
else
if
( Trans ==
CblasConjTrans
) TR=
'N'
;
88
else
if
( Trans ==
CblasNoTrans
) TR=
'T'
;
89
else
90
{
91
API_SUFFIX
(
cblas_xerbla
)(3,
"cblas_ssyrk"
,
92
"Illegal Trans setting, %d\n"
, Trans);
93
CBLAS_CallFromC
= 0;
94
RowMajorStrg
= 0;
95
return
;
96
}
97
98
#ifdef F77_CHAR
99
F77_UL
= C2F_CHAR(&UL);
100
F77_TR
= C2F_CHAR(&TR);
101
#endif
102
103
F77_ssyrk
(
F77_UL
,
F77_TR
, &
F77_N
, &
F77_K
, &alpha, A, &
F77_lda
, &beta, C, &
F77_ldc
);
104
}
else
API_SUFFIX
(
cblas_xerbla
)(1,
"cblas_ssyrk"
,
105
"Illegal layout setting, %d\n"
, layout);
106
CBLAS_CallFromC
= 0;
107
RowMajorStrg
= 0;
108
return
;
109
}
110
CBLAS_UPLO
CBLAS_UPLO
Definition
cblas.h:41
CblasLower
@ CblasLower
Definition
cblas.h:41
CblasUpper
@ CblasUpper
Definition
cblas.h:41
cblas_xerbla
void cblas_xerbla(CBLAS_INT p, const char *rout, const char *form,...)
Definition
cblas_xerbla.c:12
CBLAS_TRANSPOSE
CBLAS_TRANSPOSE
Definition
cblas.h:40
CblasNoTrans
@ CblasNoTrans
Definition
cblas.h:40
CblasTrans
@ CblasTrans
Definition
cblas.h:40
CblasConjTrans
@ CblasConjTrans
Definition
cblas.h:40
CBLAS_LAYOUT
CBLAS_LAYOUT
Definition
cblas.h:39
CblasColMajor
@ CblasColMajor
Definition
cblas.h:39
CblasRowMajor
@ CblasRowMajor
Definition
cblas.h:39
API_SUFFIX
#define API_SUFFIX(a)
Definition
cblas.h:57
CBLAS_INT
#define CBLAS_INT
Definition
cblas.h:24
cblas.h
F77_INT
#define F77_INT
Definition
cblas_example2_64.c:4
F77_ssyrk
#define F77_ssyrk(...)
Definition
cblas_f77.h:398
cblas_f77.h
CBLAS_CallFromC
int CBLAS_CallFromC
Definition
cblas_globals.c:1
RowMajorStrg
int RowMajorStrg
Definition
cblas_globals.c:2
F77_ldc
#define F77_ldc
cblas_ssyrk
void API_SUFFIX cblas_ssyrk(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo, const CBLAS_TRANSPOSE Trans, const CBLAS_INT N, const CBLAS_INT K, const float alpha, const float *A, const CBLAS_INT lda, const float beta, float *C, const CBLAS_INT ldc)
Definition
cblas_ssyrk.c:12
F77_K
#define F77_K
F77_TR
#define F77_TR
F77_N
#define F77_N
F77_lda
#define F77_lda
F77_UL
#define F77_UL
CBLAS
src
cblas_ssyrk.c
Generated on Mon Jan 20 2025 17:18:06 for LAPACK by
1.11.0