LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ cblas_zgerc()

void cblas_zgerc ( CBLAS_LAYOUT  layout,
const int  M,
const int  N,
const void *  alpha,
const void *  X,
const int  incX,
const void *  Y,
const int  incY,
void *  A,
const 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  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 
33  CBLAS_CallFromC = 1;
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 cblas_xerbla(1, "cblas_zgerc", "Illegal layout setting, %d\n", layout);
81  CBLAS_CallFromC = 0;
82  RowMajorStrg = 0;
83  return;
84 }
int RowMajorStrg
Definition: cblas_globals.c:2
#define F77_zgeru
Definition: cblas_f77.h:120
#define F77_incX
#define F77_N
#define F77_incY
#define F77_lda
#define F77_M
#define F77_zgerc
Definition: cblas_f77.h:121
int CBLAS_CallFromC
Definition: cblas_globals.c:1
void cblas_xerbla(int p, const char *rout, const char *form,...)
Definition: cblas_xerbla.c:8
#define N
Definition: example_user.c:10
Here is the call graph for this function:
Here is the caller graph for this function: