public Specification(int n, Func<double[], double> function, Func<double[], double[]> gradient, double[] start) { this.Variables = n; this.Function = function; this.Gradient = gradient; this.Start = start; if (start == null) this.Start = new double[n]; }