1779Sjoehwstruct A 21066Smullan{ 3779Sjoehw long a1; 4779Sjoehw double *a2; 5779Sjoehw}; 6779Sjoehw 7779Sjoehwstruct B 8779Sjoehw{ 9779Sjoehw void *b1; 10779Sjoehw double b2, b3; 11779Sjoehw struct 12779Sjoehw { 13779Sjoehw int d1; 14779Sjoehw double d2; 15779Sjoehw } b4; 16779Sjoehw}; 17779Sjoehw 18779Sjoehwstruct C 19779Sjoehw{ 20779Sjoehw struct A *c1; 21779Sjoehw void *c2; 22779Sjoehw}; 23779Sjoehw 24779Sjoehwlong fn1 (struct A *, double); 25779Sjoehwvoid fn2 (void *, const char *); 26968Sfyuandouble fn3 (double); 27887Sjoehwdouble fn4 (double); 28779Sjoehwint fn5 (void *, double, double); 291033Sclanger 30779Sjoehwint 31779Sjoehwfoo (struct B *x) 32779Sjoehw{ 331033Sclanger struct C *e = x->b1; 341033Sclanger struct A *f = e->c1; 351062Sclanger long g, h, i; 361074Sclanger double *j, k; 371074Sclanger g = fn1 (f, 0.5 * (x->b2 + x->b3)), h = g + 1, i = f->a1; 381074Sclanger j = f->a2, k = x->b4.d2; 39779Sjoehw fn2 (x, "something"); 401074Sclanger if (g <= 0) 41779Sjoehw { 42779Sjoehw double l = j[2] - j[1]; 431074Sclanger if (l > 0.0 && l <= 0.02) 44779Sjoehw k = (x->b4.d1 == 1 451033Sclanger ? ((1.0 / l) < 25 ? 25 : (1.0 / l)) 46779Sjoehw : fn3 ((1.0 / l) < 25 ? 25 : (1.0 / l))); 471074Sclanger } 48779Sjoehw else 49779Sjoehw { 50779Sjoehw double m = j[h] - j[g], n = 0.0, l = 0.0; 51779Sjoehw if (g > 1) 521074Sclanger n = j[g] - j[g - 1]; 53968Sfyuan if (h < i) 54779Sjoehw l = j[h + 1] - j[h]; 55779Sjoehw if (n > 0.02) 561033Sclanger n = 0; 57779Sjoehw if (m > 0.02) 58779Sjoehw m = 0; 59779Sjoehw if (l > 0.02) 60779Sjoehw l = 0; 61779Sjoehw if (m < n) 62779Sjoehw { 63779Sjoehw double o = m; 64779Sjoehw m = n; 65779Sjoehw n = o; 66779Sjoehw } 67779Sjoehw if (l < n) 68779Sjoehw { 69779Sjoehw double o = l; 701074Sclanger l = n; 71968Sfyuan n = o; 72779Sjoehw } 73968Sfyuan if (l < m) 74968Sfyuan { 75968Sfyuan double o = l; 76968Sfyuan l = m; 77887Sjoehw m = o; 781062Sclanger } 79779Sjoehw if (n != 0.0) 80968Sfyuan k = (x->b4.d1 == 1 81779Sjoehw ? ((1 / m) < 25 ? 25 : (1 / m)) 82779Sjoehw : fn3 ((1 / m) < 25 ? 25 : (1 / m))); 831062Sclanger else if (m != 0.0) 841062Sclanger k = (x->b4.d1 == 1 851062Sclanger ? ((2 / (m + l)) < 25 ? 25 : (2 / (m + l))) 861062Sclanger : fn3 ((2 / (m + l)) < 25 ? 25 : (2 / (m + l)))); 871062Sclanger else if (l != 0.0) 881062Sclanger k = (x->b4.d1 == 1 891062Sclanger ? ((1 / l) < 25 ? 25 : (1 / l)) 901062Sclanger : fn3 ((1 / l) < 25 ? 25 : (1 / l))); 911062Sclanger } 921062Sclanger fn5 (e->c2, 0.5 * (x->b2 + x->b3), (x->b4.d1 == 1 ? k : fn4 (k))); 931074Sclanger return 1; 941062Sclanger} 951074Sclanger