- double x1 = x[0], x2 = x[1], x3 = x[2], x4 = x[3], x5 = x[4];
- double b, x6, y1, y2, y3, y4, u;
- const double a0=9, a1=15, a2=50, a3=9.583, a4=20, a5=15, a6=6, a7=0.75;
- b = x2 + 0.01*x3;
- x6 = (k1 + k2*x2 + k3*x3 + k4*x4 + k5*x5) * x1;
- y1 = k6 + k7*x2 + k8*x3 + k9*x4 + k10*x5;
- y2 = k11 + k12*x2 + k13*x3 + k14*x4 + k15*x5;
- y3 = k16 + k17*x2 + k18*x3 + k19*x4 + k20*x5;
- y4 = k21 + k22*x2 + k23*x3 + k24*x4 + k25*x5;
- u = a2*y1 + a3*y2 + a4*y3 + a5*y4 + 7840*a6 - 100000*a0
- -50800*b*a7 + k31 + k32*x2 + k33*x3 + k34*x4 + k35*x5;
- if (grad) {
- int i;
- grad[0] = u + a1*(k1 + k2*x2 + k3*x3 + k4*x4 + k5*x5);
- grad[1] = x1 * (a2*k7 + a3*k12 + a4*k17 + a5*k22 - 50800*a7 + k32) + a1 * (k2 * x1);
- grad[2] = x1 * (a2*k8 + a3*k13 + a4*k18 + a5*k23 - 50800*a7*0.01) + a1*x1*k3;
- grad[3] = x1 * (a2*k9 + a3*k14 + a4*k19 + a5*k24) + a1*x1*k4;
- grad[4] = x1 * (a2*k10 + a3*k15 + a4*k20 + a5*k25) + a1*x1*k5;
- for (i = 0; i < 5; ++i) grad[i] = -grad[i];
- }
- RETURN(-(u*x1 - 24345 + a1*x6));
+ double x1 = x[0], x2 = x[1], x3 = x[2], x4 = x[3], x5 = x[4];
+ double b, x6, y1, y2, y3, y4, u;
+ const double a0 = 9, a1 = 15, a2 = 50, a3 = 9.583, a4 = 20, a5 = 15, a6 = 6, a7 = 0.75;
+ b = x2 + 0.01 * x3;
+ x6 = (k1 + k2 * x2 + k3 * x3 + k4 * x4 + k5 * x5) * x1;
+ y1 = k6 + k7 * x2 + k8 * x3 + k9 * x4 + k10 * x5;
+ y2 = k11 + k12 * x2 + k13 * x3 + k14 * x4 + k15 * x5;
+ y3 = k16 + k17 * x2 + k18 * x3 + k19 * x4 + k20 * x5;
+ y4 = k21 + k22 * x2 + k23 * x3 + k24 * x4 + k25 * x5;
+ u = a2 * y1 + a3 * y2 + a4 * y3 + a5 * y4 + 7840 * a6 - 100000 * a0 - 50800 * b * a7 + k31 + k32 * x2 + k33 * x3 + k34 * x4 + k35 * x5;
+ if (grad) {
+ int i;
+ grad[0] = u + a1 * (k1 + k2 * x2 + k3 * x3 + k4 * x4 + k5 * x5);
+ grad[1] = x1 * (a2 * k7 + a3 * k12 + a4 * k17 + a5 * k22 - 50800 * a7 + k32) + a1 * (k2 * x1);
+ grad[2] = x1 * (a2 * k8 + a3 * k13 + a4 * k18 + a5 * k23 - 50800 * a7 * 0.01) + a1 * x1 * k3;
+ grad[3] = x1 * (a2 * k9 + a3 * k14 + a4 * k19 + a5 * k24) + a1 * x1 * k4;
+ grad[4] = x1 * (a2 * k10 + a3 * k15 + a4 * k20 + a5 * k25) + a1 * x1 * k5;
+ for (i = 0; i < 5; ++i)
+ grad[i] = -grad[i];
+ }
+ RETURN(-(u * x1 - 24345 + a1 * x6));