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