📄 ztrmm.c
字号:
i__2 = k + j * a_dim1;
z__1.r = alpha->r * a[i__2].r - alpha->i * a[i__2]
.i, z__1.i = alpha->r * a[i__2].i +
alpha->i * a[i__2].r;
temp.r = z__1.r, temp.i = z__1.i;
/*< DO 180, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< B( I, J ) = B( I, J ) + TEMP*B( I, K ) >*/
i__3 = i__ + j * b_dim1;
i__4 = i__ + j * b_dim1;
i__5 = i__ + k * b_dim1;
z__2.r = temp.r * b[i__5].r - temp.i * b[i__5]
.i, z__2.i = temp.r * b[i__5].i +
temp.i * b[i__5].r;
z__1.r = b[i__4].r + z__2.r, z__1.i = b[i__4]
.i + z__2.i;
b[i__3].r = z__1.r, b[i__3].i = z__1.i;
/*< 180 CONTINUE >*/
/* L180: */
}
/*< END IF >*/
}
/*< 190 CONTINUE >*/
/* L190: */
}
/*< 200 CONTINUE >*/
/* L200: */
}
/*< ELSE >*/
} else {
/*< DO 240, J = 1, N >*/
i__1 = *n;
for (j = 1; j <= i__1; ++j) {
/*< TEMP = ALPHA >*/
temp.r = alpha->r, temp.i = alpha->i;
/*< >*/
if (nounit) {
i__2 = j + j * a_dim1;
z__1.r = temp.r * a[i__2].r - temp.i * a[i__2].i,
z__1.i = temp.r * a[i__2].i + temp.i * a[i__2]
.r;
temp.r = z__1.r, temp.i = z__1.i;
}
/*< DO 210, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< B( I, J ) = TEMP*B( I, J ) >*/
i__3 = i__ + j * b_dim1;
i__4 = i__ + j * b_dim1;
z__1.r = temp.r * b[i__4].r - temp.i * b[i__4].i,
z__1.i = temp.r * b[i__4].i + temp.i * b[i__4]
.r;
b[i__3].r = z__1.r, b[i__3].i = z__1.i;
/*< 210 CONTINUE >*/
/* L210: */
}
/*< DO 230, K = J + 1, N >*/
i__2 = *n;
for (k = j + 1; k <= i__2; ++k) {
/*< IF( A( K, J ).NE.ZERO )THEN >*/
i__3 = k + j * a_dim1;
if (a[i__3].r != 0. || a[i__3].i != 0.) {
/*< TEMP = ALPHA*A( K, J ) >*/
i__3 = k + j * a_dim1;
z__1.r = alpha->r * a[i__3].r - alpha->i * a[i__3]
.i, z__1.i = alpha->r * a[i__3].i +
alpha->i * a[i__3].r;
temp.r = z__1.r, temp.i = z__1.i;
/*< DO 220, I = 1, M >*/
i__3 = *m;
for (i__ = 1; i__ <= i__3; ++i__) {
/*< B( I, J ) = B( I, J ) + TEMP*B( I, K ) >*/
i__4 = i__ + j * b_dim1;
i__5 = i__ + j * b_dim1;
i__6 = i__ + k * b_dim1;
z__2.r = temp.r * b[i__6].r - temp.i * b[i__6]
.i, z__2.i = temp.r * b[i__6].i +
temp.i * b[i__6].r;
z__1.r = b[i__5].r + z__2.r, z__1.i = b[i__5]
.i + z__2.i;
b[i__4].r = z__1.r, b[i__4].i = z__1.i;
/*< 220 CONTINUE >*/
/* L220: */
}
/*< END IF >*/
}
/*< 230 CONTINUE >*/
/* L230: */
}
/*< 240 CONTINUE >*/
/* L240: */
}
/*< END IF >*/
}
/*< ELSE >*/
} else {
/* Form B := alpha*B*A' or B := alpha*B*conjg( A' ). */
/*< IF( UPPER )THEN >*/
if (upper) {
/*< DO 280, K = 1, N >*/
i__1 = *n;
for (k = 1; k <= i__1; ++k) {
/*< DO 260, J = 1, K - 1 >*/
i__2 = k - 1;
for (j = 1; j <= i__2; ++j) {
/*< IF( A( J, K ).NE.ZERO )THEN >*/
i__3 = j + k * a_dim1;
if (a[i__3].r != 0. || a[i__3].i != 0.) {
/*< IF( NOCONJ )THEN >*/
if (noconj) {
/*< TEMP = ALPHA*A( J, K ) >*/
i__3 = j + k * a_dim1;
z__1.r = alpha->r * a[i__3].r - alpha->i * a[
i__3].i, z__1.i = alpha->r * a[i__3]
.i + alpha->i * a[i__3].r;
temp.r = z__1.r, temp.i = z__1.i;
/*< ELSE >*/
} else {
/*< TEMP = ALPHA*DCONJG( A( J, K ) ) >*/
d_cnjg(&z__2, &a[j + k * a_dim1]);
z__1.r = alpha->r * z__2.r - alpha->i *
z__2.i, z__1.i = alpha->r * z__2.i +
alpha->i * z__2.r;
temp.r = z__1.r, temp.i = z__1.i;
/*< END IF >*/
}
/*< DO 250, I = 1, M >*/
i__3 = *m;
for (i__ = 1; i__ <= i__3; ++i__) {
/*< B( I, J ) = B( I, J ) + TEMP*B( I, K ) >*/
i__4 = i__ + j * b_dim1;
i__5 = i__ + j * b_dim1;
i__6 = i__ + k * b_dim1;
z__2.r = temp.r * b[i__6].r - temp.i * b[i__6]
.i, z__2.i = temp.r * b[i__6].i +
temp.i * b[i__6].r;
z__1.r = b[i__5].r + z__2.r, z__1.i = b[i__5]
.i + z__2.i;
b[i__4].r = z__1.r, b[i__4].i = z__1.i;
/*< 250 CONTINUE >*/
/* L250: */
}
/*< END IF >*/
}
/*< 260 CONTINUE >*/
/* L260: */
}
/*< TEMP = ALPHA >*/
temp.r = alpha->r, temp.i = alpha->i;
/*< IF( NOUNIT )THEN >*/
if (nounit) {
/*< IF( NOCONJ )THEN >*/
if (noconj) {
/*< TEMP = TEMP*A( K, K ) >*/
i__2 = k + k * a_dim1;
z__1.r = temp.r * a[i__2].r - temp.i * a[i__2].i,
z__1.i = temp.r * a[i__2].i + temp.i * a[
i__2].r;
temp.r = z__1.r, temp.i = z__1.i;
/*< ELSE >*/
} else {
/*< TEMP = TEMP*DCONJG( A( K, K ) ) >*/
d_cnjg(&z__2, &a[k + k * a_dim1]);
z__1.r = temp.r * z__2.r - temp.i * z__2.i,
z__1.i = temp.r * z__2.i + temp.i *
z__2.r;
temp.r = z__1.r, temp.i = z__1.i;
/*< END IF >*/
}
/*< END IF >*/
}
/*< IF( TEMP.NE.ONE )THEN >*/
if (temp.r != 1. || temp.i != 0.) {
/*< DO 270, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< B( I, K ) = TEMP*B( I, K ) >*/
i__3 = i__ + k * b_dim1;
i__4 = i__ + k * b_dim1;
z__1.r = temp.r * b[i__4].r - temp.i * b[i__4].i,
z__1.i = temp.r * b[i__4].i + temp.i * b[
i__4].r;
b[i__3].r = z__1.r, b[i__3].i = z__1.i;
/*< 270 CONTINUE >*/
/* L270: */
}
/*< END IF >*/
}
/*< 280 CONTINUE >*/
/* L280: */
}
/*< ELSE >*/
} else {
/*< DO 320, K = N, 1, -1 >*/
for (k = *n; k >= 1; --k) {
/*< DO 300, J = K + 1, N >*/
i__1 = *n;
for (j = k + 1; j <= i__1; ++j) {
/*< IF( A( J, K ).NE.ZERO )THEN >*/
i__2 = j + k * a_dim1;
if (a[i__2].r != 0. || a[i__2].i != 0.) {
/*< IF( NOCONJ )THEN >*/
if (noconj) {
/*< TEMP = ALPHA*A( J, K ) >*/
i__2 = j + k * a_dim1;
z__1.r = alpha->r * a[i__2].r - alpha->i * a[
i__2].i, z__1.i = alpha->r * a[i__2]
.i + alpha->i * a[i__2].r;
temp.r = z__1.r, temp.i = z__1.i;
/*< ELSE >*/
} else {
/*< TEMP = ALPHA*DCONJG( A( J, K ) ) >*/
d_cnjg(&z__2, &a[j + k * a_dim1]);
z__1.r = alpha->r * z__2.r - alpha->i *
z__2.i, z__1.i = alpha->r * z__2.i +
alpha->i * z__2.r;
temp.r = z__1.r, temp.i = z__1.i;
/*< END IF >*/
}
/*< DO 290, I = 1, M >*/
i__2 = *m;
for (i__ = 1; i__ <= i__2; ++i__) {
/*< B( I, J ) = B( I, J ) + TEMP*B( I, K ) >*/
i__3 = i__ + j * b_dim1;
i__4 = i__ + j * b_dim1;
i__5 = i__ + k * b_dim1;
z__2.r = temp.r * b[i__5].r - temp.i * b[i__5]
.i, z__2.i = temp.r * b[i__5].i +
temp.i * b[i__5].r;
z__1.r = b[i__4].r + z__2.r, z__1.i = b[i__4]
.i + z__2.i;
b[i__3].r = z__1.r, b[i__3].i = z__1.i;
/*< 290 CONTINUE >*/
/* L290: */
}
/*< END IF >*/
}
/*< 300 CONTINUE >*/
/* L300: */
}
/*< TEMP = ALPHA >*/
temp.r = alpha->r, temp.i = alpha->i;
/*< IF( NOUNIT )THEN >*/
if (nounit) {
/*< IF( NOCONJ )THEN >*/
if (noconj) {
/*< TEMP = TEMP*A( K, K ) >*/
i__1 = k + k * a_dim1;
z__1.r = temp.r * a[i__1].r - temp.i * a[i__1].i,
z__1.i = temp.r * a[i__1].i + temp.i * a[
i__1].r;
temp.r = z__1.r, temp.i = z__1.i;
/*< ELSE >*/
} else {
/*< TEMP = TEMP*DCONJG( A( K, K ) ) >*/
d_cnjg(&z__2, &a[k + k * a_dim1]);
z__1.r = temp.r * z__2.r - temp.i * z__2.i,
z__1.i = temp.r * z__2.i + temp.i *
z__2.r;
temp.r = z__1.r, temp.i = z__1.i;
/*< END IF >*/
}
/*< END IF >*/
}
/*< IF( TEMP.NE.ONE )THEN >*/
if (temp.r != 1. || temp.i != 0.) {
/*< DO 310, I = 1, M >*/
i__1 = *m;
for (i__ = 1; i__ <= i__1; ++i__) {
/*< B( I, K ) = TEMP*B( I, K ) >*/
i__2 = i__ + k * b_dim1;
i__3 = i__ + k * b_dim1;
z__1.r = temp.r * b[i__3].r - temp.i * b[i__3].i,
z__1.i = temp.r * b[i__3].i + temp.i * b[
i__3].r;
b[i__2].r = z__1.r, b[i__2].i = z__1.i;
/*< 310 CONTINUE >*/
/* L310: */
}
/*< END IF >*/
}
/*< 320 CONTINUE >*/
/* L320: */
}
/*< END IF >*/
}
/*< END IF >*/
}
/*< END IF >*/
}
/*< RETURN >*/
return 0;
/* End of ZTRMM . */
/*< END >*/
} /* ztrmm_ */
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -