theoreticalMinParams);
}
@Override
public DerivativeStructure[] value(DerivativeStructure[] variables) {
DerivativeStructure x01 = variables[0];
DerivativeStructure x02 = variables[1];
DerivativeStructure x03 = variables[2];
DerivativeStructure x04 = variables[3];
DerivativeStructure x05 = variables[4];
DerivativeStructure x06 = variables[5];
DerivativeStructure x07 = variables[6];
DerivativeStructure x08 = variables[7];
DerivativeStructure x09 = variables[8];
DerivativeStructure x10 = variables[9];
DerivativeStructure x11 = variables[10];
DerivativeStructure[] f = new DerivativeStructure[m];
for (int i = 0; i < m; ++i) {
double temp = i / 10.0;
DerivativeStructure tmp1 = x05.multiply(-temp).exp();
DerivativeStructure tmp2 = x06.negate().multiply(x09.subtract(temp).multiply(x09.subtract(temp))).exp();
DerivativeStructure tmp3 = x07.negate().multiply(x10.subtract(temp).multiply(x10.subtract(temp))).exp();
DerivativeStructure tmp4 = x08.negate().multiply(x11.subtract(temp).multiply(x11.subtract(temp))).exp();
f[i] = x01.multiply(tmp1).add(x02.multiply(tmp2)).add(x03.multiply(tmp3)).add(x04.multiply(tmp4)).negate().add(y[i]);
}
return f;
}