⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ztrmm.c

📁 DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.
💻 C
📖 第 1 页 / 共 3 页
字号:
                            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 + -