///<summary> Initialize the optimization method </summary> ///<remarks> The use of this function is intended for testing/debugging purposes only </remarks> public void InitializeMethod(DoubleVector[] initialsimplex) { this.x = new DoubleVector[initialsimplex.Length]; initialsimplex.CopyTo(this.x, 0); this.fx = new double[this.x.Length]; RankVertices(); this.laststep_ = Step.Initialization; this.iterationVectors_ = new DoubleVector[endCriteria_.maxIteration + 1]; this.iterationVectors_[0] = initialsimplex[0]; this.iterationValues_ = new double[endCriteria_.maxIteration + 1]; this.iterationValues_[0] = FunctionEvaluation(this.iterationVectors_[0]); this.iterationGradientNorms_ = new double[endCriteria_.maxIteration + 1]; this.iterationGradientNorms_[0] = 2.0 * System.Math.Abs(fx[x.Length - 1] - fx[0]) / (System.Math.Abs(fx[x.Length - 1]) + System.Math.Abs(fx[0]) + System.Double.Epsilon); }
public void ICollection() { DoubleVector a = new DoubleVector(new double[4]{0,1,2,3}); double[] b = new double[5]; Assert.AreEqual(a.Count,a.Length); a.CopyTo(b,1); Assert.AreEqual(b[0],0); Assert.AreEqual(b[1],0); Assert.AreEqual(b[2],1); Assert.AreEqual(b[3],2); Assert.AreEqual(b[4],3); }