public virtual IterationResults Solve() { Init(); int iteration = 1; Vector point = (Vector)InitialPoint.Clone(); do { point = SolveIteration(point, iteration).CurrentPoint; ++iteration; }while (!ShouldEnd()); return(iterations.Last()); }