public Info[] Expected(Specification problem)
{
NativeCode = String.Empty;
Function function = problem.Function.Invoke;
Gradient gradient = problem.Gradient.Invoke;
if (l == null)
{
l = new double[problem.Start.Length];
for (int i = 0; i < l.Length; i++)
l[i] = Double.NegativeInfinity;
}
if (u == null)
{
u = new double[problem.Start.Length];
for (int i = 0; i < l.Length; i++)
u[i] = Double.PositiveInfinity;
}
Param2 param = new Param2()
{
factr = factr,
l = l,
u = u,
pgtol = pgtol,
m = m,
max_iterations = max_iterations
};
NativeCode = Wrapper.Lbfgsb3((double[])problem.Start.Clone(), function, gradient, param).Trim();
return Wrapper.list.ToArray();
}