LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ cblas_zgerc()

void cblas_zgerc ( 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 at line 12 of file cblas_zgerc.c.

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 double *y=(double *)Y, *yy=(double *)Y, *ty, *st;
28
29 extern int CBLAS_CallFromC;
30 extern int RowMajorStrg;
31 RowMajorStrg = 0;
32
34 if (layout == CblasColMajor)
35 {
36 F77_zgerc( &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(double));
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 = (double *) Y;
74
75 F77_zgeru( &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_zgerc", "Illegal layout setting, %d\n", layout);
82 RowMajorStrg = 0;
83 return;
84}
void cblas_xerbla(CBLAS_INT p, const char *rout, const char *form,...)
@ CblasColMajor
Definition cblas.h:39
@ CblasRowMajor
Definition cblas.h:39
#define API_SUFFIX(a)
Definition cblas.h:57
#define CBLAS_INT
Definition cblas.h:24
#define F77_INT
#define F77_zgeru(...)
Definition cblas_f77.h:301
#define F77_zgerc(...)
Definition cblas_f77.h:300
int CBLAS_CallFromC
int RowMajorStrg
#define F77_incX
#define F77_incY
#define F77_N
#define F77_lda
#define F77_M
Here is the call graph for this function:
Here is the caller graph for this function: