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());
        }