📄 zgemv.c
字号:
for (i__ = 1; i__ <= i__1; ++i__) {
/*< Y( I ) = BETA*Y( I ) >*/
i__2 = i__;
i__3 = i__;
z__1.r = beta->r * y[i__3].r - beta->i * y[i__3].i,
z__1.i = beta->r * y[i__3].i + beta->i * y[i__3]
.r;
y[i__2].r = z__1.r, y[i__2].i = z__1.i;
/*< 20 CONTINUE >*/
/* L20: */
}
/*< END IF >*/
}
/*< ELSE >*/
} else {
/*< IY = KY >*/
iy = ky;
/*< IF( BETA.EQ.ZERO )THEN >*/
if (beta->r == 0. && beta->i == 0.) {
/*< DO 30, I = 1, LENY >*/
i__1 = leny;
for (i__ = 1; i__ <= i__1; ++i__) {
/*< Y( IY ) = ZERO >*/
i__2 = iy;
y[i__2].r = 0., y[i__2].i = 0.;
/*< IY = IY + INCY >*/
iy += *incy;
/*< 30 CONTINUE >*/
/* L30: */
}
/*< ELSE >*/
} else {
/*< DO 40, I = 1, LENY >*/
i__1 = leny;
for (i__ = 1; i__ <= i__1; ++i__) {
/*< Y( IY ) = BETA*Y( IY ) >*/
i__2 = iy;
i__3 = iy;
z__1.r = beta->r * y[i__3].r - beta->i * y[i__3].i,
z__1.i = beta->r * y[i__3].i + beta->i * y[i__3]
.r;
y[i__2].r = z__1.r, y[i__2].i = z__1.i;
/*< IY = IY + INCY >*/
iy += *incy;
/*< 40 CONTINUE >*/
/* L40: */
}
/*< END IF >*/
}
/*< END IF >*/
}
/*< END IF >*/
}
/*< >*/
if (alpha->r == 0. && alpha->i == 0.) {
return 0;
}
/*< IF( LSAME( TRANS, 'N' ) )THEN >*/
if (lsame_(trans, "N", (ftnlen)1, (ftnlen)1)) {
/* Form y := alpha*A*x + y. */
/*< JX = KX >*/
jx = kx;
/*< IF( INCY.EQ.1 )THEN >*/
if (*incy == 1) {
/*< DO 60, J = 1, N >*/
i__1 = *n;
for (j = 1; j <= i__1; ++j) {
/*< IF( X( JX ).NE.ZERO )THEN >*/
i__2 = jx;
if (x[i__2].r != 0. || x[i__2].i != 0.) {
/*< TEMP = ALPHA*X( JX ) >*/
i__2 = jx;
z__1.r = alpha->r * x[i__2].r - alpha->i * x[i__2].i,
z__1.i = alpha->r * x[i__2].i + alpha->i * x[i__2]
.r;
temp.r = z__1.r, temp.i = z__1.i;
/*< DO 50, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< Y( I ) = Y( I ) + TEMP*A( I, J ) >*/
i__3 = i__;
i__4 = i__;
i__5 = i__ + j * a_dim1;
z__2.r = temp.r * a[i__5].r - temp.i * a[i__5].i,
z__2.i = temp.r * a[i__5].i + temp.i * a[i__5]
.r;
z__1.r = y[i__4].r + z__2.r, z__1.i = y[i__4].i +
z__2.i;
y[i__3].r = z__1.r, y[i__3].i = z__1.i;
/*< 50 CONTINUE >*/
/* L50: */
}
/*< END IF >*/
}
/*< JX = JX + INCX >*/
jx += *incx;
/*< 60 CONTINUE >*/
/* L60: */
}
/*< ELSE >*/
} else {
/*< DO 80, J = 1, N >*/
i__1 = *n;
for (j = 1; j <= i__1; ++j) {
/*< IF( X( JX ).NE.ZERO )THEN >*/
i__2 = jx;
if (x[i__2].r != 0. || x[i__2].i != 0.) {
/*< TEMP = ALPHA*X( JX ) >*/
i__2 = jx;
z__1.r = alpha->r * x[i__2].r - alpha->i * x[i__2].i,
z__1.i = alpha->r * x[i__2].i + alpha->i * x[i__2]
.r;
temp.r = z__1.r, temp.i = z__1.i;
/*< IY = KY >*/
iy = ky;
/*< DO 70, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< Y( IY ) = Y( IY ) + TEMP*A( I, J ) >*/
i__3 = iy;
i__4 = iy;
i__5 = i__ + j * a_dim1;
z__2.r = temp.r * a[i__5].r - temp.i * a[i__5].i,
z__2.i = temp.r * a[i__5].i + temp.i * a[i__5]
.r;
z__1.r = y[i__4].r + z__2.r, z__1.i = y[i__4].i +
z__2.i;
y[i__3].r = z__1.r, y[i__3].i = z__1.i;
/*< IY = IY + INCY >*/
iy += *incy;
/*< 70 CONTINUE >*/
/* L70: */
}
/*< END IF >*/
}
/*< JX = JX + INCX >*/
jx += *incx;
/*< 80 CONTINUE >*/
/* L80: */
}
/*< END IF >*/
}
/*< ELSE >*/
} else {
/* Form y := alpha*A'*x + y or y := alpha*conjg( A' )*x + y. */
/*< JY = KY >*/
jy = ky;
/*< IF( INCX.EQ.1 )THEN >*/
if (*incx == 1) {
/*< DO 110, J = 1, N >*/
i__1 = *n;
for (j = 1; j <= i__1; ++j) {
/*< TEMP = ZERO >*/
temp.r = 0., temp.i = 0.;
/*< IF( NOCONJ )THEN >*/
if (noconj) {
/*< DO 90, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< TEMP = TEMP + A( I, J )*X( I ) >*/
i__3 = i__ + j * a_dim1;
i__4 = i__;
z__2.r = a[i__3].r * x[i__4].r - a[i__3].i * x[i__4]
.i, z__2.i = a[i__3].r * x[i__4].i + a[i__3]
.i * x[i__4].r;
z__1.r = temp.r + z__2.r, z__1.i = temp.i + z__2.i;
temp.r = z__1.r, temp.i = z__1.i;
/*< 90 CONTINUE >*/
/* L90: */
}
/*< ELSE >*/
} else {
/*< DO 100, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< TEMP = TEMP + DCONJG( A( I, J ) )*X( I ) >*/
d_cnjg(&z__3, &a[i__ + j * a_dim1]);
i__3 = i__;
z__2.r = z__3.r * x[i__3].r - z__3.i * x[i__3].i,
z__2.i = z__3.r * x[i__3].i + z__3.i * x[i__3]
.r;
z__1.r = temp.r + z__2.r, z__1.i = temp.i + z__2.i;
temp.r = z__1.r, temp.i = z__1.i;
/*< 100 CONTINUE >*/
/* L100: */
}
/*< END IF >*/
}
/*< Y( JY ) = Y( JY ) + ALPHA*TEMP >*/
i__2 = jy;
i__3 = jy;
z__2.r = alpha->r * temp.r - alpha->i * temp.i, z__2.i =
alpha->r * temp.i + alpha->i * temp.r;
z__1.r = y[i__3].r + z__2.r, z__1.i = y[i__3].i + z__2.i;
y[i__2].r = z__1.r, y[i__2].i = z__1.i;
/*< JY = JY + INCY >*/
jy += *incy;
/*< 110 CONTINUE >*/
/* L110: */
}
/*< ELSE >*/
} else {
/*< DO 140, J = 1, N >*/
i__1 = *n;
for (j = 1; j <= i__1; ++j) {
/*< TEMP = ZERO >*/
temp.r = 0., temp.i = 0.;
/*< IX = KX >*/
ix = kx;
/*< IF( NOCONJ )THEN >*/
if (noconj) {
/*< DO 120, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< TEMP = TEMP + A( I, J )*X( IX ) >*/
i__3 = i__ + j * a_dim1;
i__4 = ix;
z__2.r = a[i__3].r * x[i__4].r - a[i__3].i * x[i__4]
.i, z__2.i = a[i__3].r * x[i__4].i + a[i__3]
.i * x[i__4].r;
z__1.r = temp.r + z__2.r, z__1.i = temp.i + z__2.i;
temp.r = z__1.r, temp.i = z__1.i;
/*< IX = IX + INCX >*/
ix += *incx;
/*< 120 CONTINUE >*/
/* L120: */
}
/*< ELSE >*/
} else {
/*< DO 130, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< TEMP = TEMP + DCONJG( A( I, J ) )*X( IX ) >*/
d_cnjg(&z__3, &a[i__ + j * a_dim1]);
i__3 = ix;
z__2.r = z__3.r * x[i__3].r - z__3.i * x[i__3].i,
z__2.i = z__3.r * x[i__3].i + z__3.i * x[i__3]
.r;
z__1.r = temp.r + z__2.r, z__1.i = temp.i + z__2.i;
temp.r = z__1.r, temp.i = z__1.i;
/*< IX = IX + INCX >*/
ix += *incx;
/*< 130 CONTINUE >*/
/* L130: */
}
/*< END IF >*/
}
/*< Y( JY ) = Y( JY ) + ALPHA*TEMP >*/
i__2 = jy;
i__3 = jy;
z__2.r = alpha->r * temp.r - alpha->i * temp.i, z__2.i =
alpha->r * temp.i + alpha->i * temp.r;
z__1.r = y[i__3].r + z__2.r, z__1.i = y[i__3].i + z__2.i;
y[i__2].r = z__1.r, y[i__2].i = z__1.i;
/*< JY = JY + INCY >*/
jy += *incy;
/*< 140 CONTINUE >*/
/* L140: */
}
/*< END IF >*/
}
/*< END IF >*/
}
/*< RETURN >*/
return 0;
/* End of ZGEMV . */
/*< END >*/
} /* zgemv_ */
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -