LAPACK
3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
cblas_cgerc.c
Go to the documentation of this file.
1
/*
2
* cblas_cgerc.c
3
* The program is a C interface to cgerc.
4
*
5
* Keita Teranishi 5/20/98
6
*
7
*/
8
#include <stdio.h>
9
#include <stdlib.h>
10
#include "
cblas.h
"
11
#include "
cblas_f77.h
"
12
void
API_SUFFIX
(
cblas_cgerc
)(
const
CBLAS_LAYOUT
layout,
const
CBLAS_INT
M,
const
CBLAS_INT
N,
13
const
void
*alpha,
const
void
*X,
const
CBLAS_INT
incX,
14
const
void
*Y,
const
CBLAS_INT
incY,
void
*A,
const
CBLAS_INT
lda)
15
{
16
#ifdef F77_INT
17
F77_INT
F77_M
=M,
F77_N
=N,
F77_lda
=lda,
F77_incX
=incX,
F77_incY
=incY;
18
#else
19
#define F77_M M
20
#define F77_N N
21
#define F77_incX incX
22
#define F77_incY incy
23
#define F77_lda lda
24
#endif
25
26
CBLAS_INT
n, i, tincy, incy=incY;
27
float
*y=(
float
*)Y, *yy=(
float
*)Y, *ty, *st;
28
29
extern
int
CBLAS_CallFromC
;
30
extern
int
RowMajorStrg
;
31
RowMajorStrg
= 0;
32
33
CBLAS_CallFromC
= 1;
34
if
(layout ==
CblasColMajor
)
35
{
36
F77_cgerc
( &
F77_M
, &
F77_N
, alpha, X, &
F77_incX
, Y, &
F77_incY
, A,
37
&
F77_lda
);
38
}
else
if
(layout ==
CblasRowMajor
)
39
{
40
RowMajorStrg
= 1;
41
if
(N > 0)
42
{
43
n = N << 1;
44
y = malloc(n*
sizeof
(
float
));
45
46
ty = y;
47
if
( incY > 0 ) {
48
i = incY << 1;
49
tincy = 2;
50
st= y+n;
51
}
else
{
52
i = incY *(-2);
53
tincy = -2;
54
st = y-2;
55
y +=(n-2);
56
}
57
do
58
{
59
*y = *yy;
60
y[1] = -yy[1];
61
y += tincy ;
62
yy += i;
63
}
64
while
(y != st);
65
y = ty;
66
67
#ifdef F77_INT
68
F77_incY
= 1;
69
#else
70
incy = 1;
71
#endif
72
}
73
else
y = (
float
*) Y;
74
75
F77_cgeru
( &
F77_N
, &
F77_M
, alpha, y, &
F77_incY
, X, &
F77_incX
, A,
76
&
F77_lda
);
77
if
(Y!=y)
78
free(y);
79
80
}
else
API_SUFFIX
(
cblas_xerbla
)(1,
"cblas_cgerc"
,
"Illegal layout setting, %d\n"
, layout);
81
CBLAS_CallFromC
= 0;
82
RowMajorStrg
= 0;
83
return
;
84
}
cblas_xerbla
void cblas_xerbla(CBLAS_INT p, const char *rout, const char *form,...)
Definition
cblas_xerbla.c:12
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_incX
#define F77_incX
F77_incY
#define F77_incY
cblas_cgerc
void API_SUFFIX() cblas_cgerc(const CBLAS_LAYOUT layout, const CBLAS_INT M, const CBLAS_INT N, const void *alpha, const void *X, const CBLAS_INT incX, const void *Y, const CBLAS_INT incY, void *A, const CBLAS_INT lda)
Definition
cblas_cgerc.c:12
F77_N
#define F77_N
F77_lda
#define F77_lda
F77_M
#define F77_M
F77_INT
#define F77_INT
Definition
cblas_example2_64.c:7
F77_cgeru
#define F77_cgeru(...)
Definition
cblas_f77.h:299
F77_cgerc
#define F77_cgerc(...)
Definition
cblas_f77.h:298
cblas_f77.h
CBLAS_CallFromC
int CBLAS_CallFromC
Definition
cblas_globals.c:1
RowMajorStrg
int RowMajorStrg
Definition
cblas_globals.c:2
CBLAS
src
cblas_cgerc.c
Generated on Tue Nov 28 2023 11:55:04 for LAPACK by
1.9.7