package optimization.gradientBasedMethods; import optimization.gradientBasedMethods.stats.OptimizerStats; import optimization.stopCriteria.StopingCriteria; public interface Optimizer { public boolean optimize(Objective o,OptimizerStats stats, StopingCriteria stoping); public double[] getDirection(); public double getCurrentStep(); public double getCurrentValue(); public int getCurrentIteration(); public void reset(); public void setMaxIterations(int max); }