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

📄 cg.c

📁 DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.
💻 C
📖 第 1 页 / 共 3 页
字号:
        goto L250;
    }
/*<       Q = C0 >*/
    q = c0;
/*< 220   ND = ND  + 1 >*/
L220:
    ++nd;
/*<       IF ( ND .GT. 25 ) GOTO 610 >*/
    if (nd > 25) {
        goto L610;
    }
/*<       Q = A3*Q >*/
    q = a3 * q;
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       IF ( P-F .LT. W*Q ) GOTO 220 >*/
    if (p - f < w * q) {
        goto L220;
    }
/*<       GOTO 250 >*/
    goto L250;
/*< 230   IF ( C0 .LE. A5*C1 ) GOTO 250 >*/
L230:
    if (c0 <= a5 * c1) {
        goto L250;
    }
/*<       R = DLOG(C0/C1) >*/
    r__ = log(c0 / c1);
/*<       S = IDINT(R*L3+.999) >*/
    s = (doublereal) ((integer) (r__ * l3 + (float).999));
/*<       R = 1.001*DEXP(R/S) >*/
    r__ = exp(r__ / s) * (float)1.001;
/*<       Q = A >*/
    q = a;
/*< 240   Q = Q*R >*/
L240:
    q *= r__;
/*<       IF ( Q .GT. C0 ) GOTO 250 >*/
    if (q > c0) {
        goto L250;
    }
/*<       ND = ND + 1 >*/
    ++nd;
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       IF ( P-F .LT. W*Q ) GOTO 240 >*/
    if (p - f < w * q) {
        goto L240;
    }
/*< 250   IF ( IQ .EQ. 1 ) GOTO 320 >*/
L250:
    if (iq == 1) {
        goto L320;
    }
/*< 260   IF ( B .EQ. 0. ) GOTO 280 >*/
L260:
    if (b == (float)0.) {
        goto L280;
    }
/*<       IF ( C .EQ. 0. ) GOTO 270 >*/
    if (c__ == (float)0.) {
        goto L270;
    }
/*<       V = C - A >*/
    v = c__ - a;
/*<       W = A - B >*/
    w = a - b;
/*<       R = 1./V >*/
    r__ = (float)1. / v;
/*<       S = 1./W >*/
    s = (float)1. / w;
/*<       P = FC - FA >*/
    p = fc - fa;
/*<       Q = FB - FA >*/
    q = fb - fa;
/*<       E = P*R + Q*S >*/
    *e = p * r__ + q * s;
/*<       IF ( DSIGN(E,C-B) .NE. E ) GOTO 320 >*/
    d__1 = c__ - b;
    if (d_sign(e, &d__1) != *e) {
        goto L320;
    }
/*<       IF ( E .EQ. 0. ) GOTO 320 >*/
    if (*e == (float)0.) {
        goto L320;
    }
/*<       Q = (P*R)*W - (Q*S)*V >*/
    q = p * r__ * w - q * s * v;
/*<       Q = A - .5*Q/E >*/
    q = a - q * (float).5 / *e;
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       GOTO 320 >*/
    goto L320;
/*< 270   R = 1./A >*/
L270:
    r__ = (float)1. / a;
/*<       S = 1./B >*/
    s = (float)1. / b;
/*<       P = R*(FA-F) - D >*/
    p = r__ * (fa - f) - d__;
/*<       Q = S*(FB-F) - D >*/
    q = s * (fb - f) - d__;
/*<       E = A - B >*/
    *e = a - b;
/*<       V = (R*P-S*Q)/E >*/
    v = (r__ * p - s * q) / *e;
/*<       W = (A*Q*S-B*P*R)/E >*/
    w = (a * q * s - b * p * r__) / *e;
/*<       V = W*W-3.*V*D >*/
    v = w * w - v * (float)3. * d__;
/*<       IF ( V .LT. 0. ) V = 0. >*/
    if (v < (float)0.) {
        v = (float)0.;
    }
/*<       V = DSQRT(V) >*/
    v = sqrt(v);
/*<       IF ( W+V .EQ. 0. ) GOTO 320 >*/
    if (w + v == (float)0.) {
        goto L320;
    }
/*<       Q = -D/(W+V) >*/
    q = -d__ / (w + v);
/*<       IF ( Q .LE. 0. ) GOTO 320 >*/
    if (q <= (float)0.) {
        goto L320;
    }
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       GOTO 320 >*/
    goto L320;
/*< 280   IF ( IQ .EQ. 1 ) GOTO  320 >*/
L280:
    if (iq == 1) {
        goto L320;
    }
/*<       Q = (D+(F-FA)/A)/A >*/
    q = (d__ + (f - fa) / a) / a;
/*<       IF ( Q .GE. 0. ) GOTO 320 >*/
    if (q >= (float)0.) {
        goto L320;
    }
/*<       Q = .5*D/Q >*/
    q = d__ * (float).5 / q;
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       GOTO 320 >*/
    goto L320;
/*< 290   IF ( F0-F .GT. V*C0 ) GOTO 300 >*/
L290:
    if (f0 - f > v * c0) {
        goto L300;
    }
/*<       IF ( F0-F .GT. W*C0 ) GOTO 320 >*/
    if (f0 - f > w * c0) {
        goto L320;
    }
/*< 300   Q = A >*/
L300:
    q = a;
/*< 310   ND = ND + 1 >*/
L310:
    ++nd;
/*<       IF ( ND .GT. 25 ) GOTO 610 >*/
    if (nd > 25) {
        goto L610;
    }
/*<       Q = A3*Q >*/
    q = a3 * q;
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       IF ( P-F .LT. W*Q ) GOTO 310 >*/
    if (p - f < w * q) {
        goto L310;
    }
/*<       GOTO 250 >*/
    goto L250;
/*< 320   DA = FD(A,X,H,N,GRAD) >*/
L320:
    da = fd_(&a, &x[1], &h__[h_offset], n, grad, userdata);
/*<       IF ( DA .GT. A6*G ) GOTO 410 >*/
    if (da > a6 * g) {
        goto L410;
    }
/*<       IF ( DA .GE. 0. ) GOTO 560 >*/
    if (da >= (float)0.) {
        goto L560;
    }
/*<       R = A >*/
    r__ = a;
/*<       Q = 0. >*/
    q = (float)0.;
/*<       DO 330 I = 1,J >*/
    i__1 = j;
    for (i__ = 1; i__ <= i__1; ++i__) {
/*<            IF ( Y(I) .GT. A ) GOTO 370 >*/
        if (y[i__ - 1] > a) {
            goto L370;
        }
/*<            IF ( Y(I) .LE. Q ) GOTO 330 >*/
        if (y[i__ - 1] <= q) {
            goto L330;
        }
/*<            IF ( Y(I) .EQ. A ) GOTO 330 >*/
        if (y[i__ - 1] == a) {
            goto L330;
        }
/*<            Q = Y(I) >*/
        q = y[i__ - 1];
/*< 330   CONTINUE >*/
L330:
        ;
    }
/*<       IF ( A .LE. A8*Q ) GOTO 560 >*/
    if (a <= a8 * q) {
        goto L560;
    }
/*<       Q = A >*/
    q = a;
/*< 340   ND = ND + 1 >*/
L340:
    ++nd;
/*<       IF ( ND .GT. 25 ) GOTO 610 >*/
    if (nd > 25) {
        goto L610;
    }
/*<       Q = A3*Q >*/
    q = a3 * q;
/*<       P = FV(Q,X,H,N,VALUE) >*/
    p = fv_(&q, &x[1], &h__[h_offset], n, value, userdata);
/*<       F1 = FA >*/
    f1 = fa;
/*<       CALL INS(Q,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&q, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       IF ( P .LT. F1 ) GOTO 340 >*/
    if (p < f1) {
        goto L340;
    }
/*<       IF ( A .GT. R ) GOTO 360 >*/
    if (a > r__) {
        goto L360;
    }
/*<       DO 350 I = 1,N >*/
    i__1 = *n;
    for (i__ = 1; i__ <= i__1; ++i__) {
/*< 350        H(I,2) = X(I) + A*H(I,1) >*/
/* L350: */
        h__[i__ + (h_dim1 << 1)] = x[i__] + a * h__[i__ + h_dim1];
    }
/*<       GOTO 560 >*/
    goto L560;
/*< 360   DA = FD(A,X,H,N,GRAD) >*/
L360:
    da = fd_(&a, &x[1], &h__[h_offset], n, grad, userdata);
/*<       IF ( DA .GT. A6*G ) GOTO 410 >*/
    if (da > a6 * g) {
        goto L410;
    }
/*<       GOTO 560 >*/
    goto L560;
/*< 370   Q = Y(I) >*/
L370:
    q = y[i__ - 1];
/*<       DO 380 K = I,J >*/
    i__1 = j;
    for (k = i__; k <= i__1; ++k) {
/*<            IF ( Y(K) .LE. A ) GOTO 380 >*/
        if (y[k - 1] <= a) {
            goto L380;
        }
/*<            IF ( Y(K) .LT. Q ) Q = Y(K) >*/
        if (y[k - 1] < q) {
            q = y[k - 1];
        }
/*< 380   CONTINUE >*/
L380:
        ;
    }
/*<       IF ( Q .LE. A5*A ) GOTO 560 >*/
    if (q <= a5 * a) {
        goto L560;
    }
/*<       F0 = DLOG(Q/A) >*/
    f0 = log(q / a);
/*<       S = IDINT(F0*L3+.999) >*/
    s = (doublereal) ((integer) (f0 * l3 + (float).999));
/*<       F0 = 1.001*DEXP(F0/S) >*/
    f0 = exp(f0 / s) * (float)1.001;
/*<       S = A >*/
    s = a;
/*< 390   S = S*F0 >*/
L390:
    s *= f0;
/*<       IF ( S .GE. Q ) GOTO 320 >*/
    if (s >= q) {
        goto L320;
    }
/*<       P = FV(S,X,H,N,VALUE) >*/
    p = fv_(&s, &x[1], &h__[h_offset], n, value, userdata);
/*<       F1 = FA >*/
    f1 = fa;
/*<       CALL INS(S,P,A,B,C,FA,FB,FC,J,Y,Z) >*/
    ins_(&s, &p, &a, &b, &c__, &fa, &fb, &fc, &j, y, z__);
/*<       IF ( P .LT. F1 ) GOTO 390 >*/
    if (p < f1) {
        goto L390;
    }
/*<       IF ( A .GT. R ) GOTO 320 >*/
    if (a > r__) {
        goto L320;
    }
/*<       DO 400 I = 1,N >*/
    i__1 = *n;
    for (i__ = 1; i__ <= i__1; ++i__) {
/*< 400        H(I,2) = X(I) + A*H(I,1) >*/
/* L400: */
        h__[i__ + (h_dim1 << 1)] = x[i__] + a * h__[i__ + h_dim1];
    }
/*<       GOTO 560 >*/
    goto L560;
/*< 410   B = 0. >*/
L410:
    b = (float)0.;
/*<       K = 1 >*/
    k = 1;
/*<       I = K >*/
    i__ = k;
/*< 420   I = I + 1 >*/
L420:
    ++i__;
/*<       IF ( I .GT. J ) GOTO 430 >*/
    if (i__ > j) {
        goto L430;
    }
/*<       IF ( Y(I) .GE. A ) GOTO 420 >*/
    if (y[i__ - 1] >= a) {
        goto L420;
    }
/*<       IF ( Y(I) .LT. B ) GOTO 420 >*/
    if (y[i__ - 1] < b) {
        goto L420;
    }
/*<       B = Y(I) >*/
    b = y[i__ - 1];
/*<       K = I >*/
    k = i__;
/*<       GOTO 420 >*/
    goto L420;
/*< 430   FB = Z(K) >*/
L430:
    fb = z__[k - 1];
/*<       DB = D >*/
    db = d__;
/*<       IF ( B .NE. 0. ) DB = FD(B,X,H,N,GRAD) >*/
    if (b != (float)0.) {
        db = fd_(&b, &x[1], &h__[h_offset], n, grad, userdata);
    }
/*< 440   W = 2.*DABS(B-A) >*/
/* L440: */
    w = (d__1 = b - a, abs(d__1)) * (float)2.;
/*<       CALL CUB(C,A,B,FA,FB,DA,DB) >*/
    cub_(&c__, &a, &b, &fa, &fb, &da, &db);
/*<       NC = 1 >*/
    nc = 1;
/*<       GOTO 480 >*/
    goto L480;
/*< 450   W = .5*W >*/
L450:
    w *= (float).5;
/*<       IF ( W .LT. DABS(C0-C) ) GOTO 550 >*/
    if (w < (d__1 = c0 - c__, abs(d__1))) {
        goto L550;
    }
/*<       IF ( C0 .LT. C ) GOTO 460 >*/
    if (c0 < c__) {
        goto L460;
    }
/*<       IF ( D0 .GE. D ) GOTO 470 >*/
    if (d0 >= d__) {
        goto L470;
    }
/*<       GOTO 550 >*/
    goto L550;
/*< 460   IF ( D0 .GT. D ) GOTO 550 >*/
L460:
    if (d0 > d__) {
        goto L550;
    }
/*< 470   CALL CUB(C,C,C0,F,F0,D,D0) >*/
L470:
    cub_(&c__, &c__, &c0, &f, &f0, &d__, &d0);
/*<       NC = NC + 1 >*/
    ++nc;
/*<       IF ( NC .GT. 30 ) GOTO 600 >*/
    if (nc > 30) {
        goto L600;
    }
/*< 480   R = DMAX1(A,B) >*/
L480:
    r__ = max(a,b);
/*<       S = DMIN1(A,B) >*/
    s = min(a,b);
/*<       IF ( C .GT. R ) GOTO 490 >*/
    if (c__ > r__) {
        goto L490;
    }
/*<       IF ( C .GT. S ) GOTO 500 >*/
    if (c__ > s) {
        goto L500;
    }
/*<       C = S + (S-C) >*/
    c__ = s + (s - c__);
/*<       S = .5*(A+B) >*/
    s = (a + b) * (float).5;
/*<       IF ( C .GT. S ) C = S >*/
    if (c__ > s) {
        c__ = s;
    }
/*<       GOTO 500 >*/
    goto L500;
/*< 490   C = R - (C-R) >*/
L490:
    c__ = r__ - (c__ - r__);
/*<       S = .5*(A+B) >*/
    s = (a + b) * (float).5;
/*<       IF ( C .LT. S ) C = S >*/
    if (c__ < s) {
        c__ = s;
    }
/*< 500   C0 = A >*/
L500:
    c0 = a;
/*<       F0 = FA >*/
    f0 = fa;
/*<       D0 = DA >*/
    d0 = da;
/*<       CALL FVD(F,D,C,X,H,N,BOTH) >*/
    fvd_(&f, &d__, &c__, &x[1], &h__[h_offset], n, both, userdata);
/*<       IF ( F .LT. FA ) GOTO 510 >*/
    if (f < fa) {
        goto L510;
    }
/*<       B = C >*/
    b = c__;
/*<       FB = F >*/
    fb = f;
/*<       DB = D >*/
    db = d__;
/*<       GOTO 450 >*/
    goto L450;
/*< 510   IF ( C .LT. A ) GOTO 540 >*/
L510:
    if (c__ < a) {
        goto L540;
    }
/*<       IF ( D .LT. 0. ) GOTO 530 >*/
    if (d__ < (float)0.) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -