package common.function;
/**
* Created by IntelliJ IDEA.
* User: honza
* Date: 19.2.2007
* Time: 16:13:41
* To change this template use File | Settings | File Templates.
*/
public abstract class BasicObjectiveFunction implements ObjectiveFunction {
//statistics
protected int numEvaluateCalls = 0;
protected int numGradientCalls = 0;
protected int numHessianCalls = 0;
public int getNumEvaluateCalls() {
return numEvaluateCalls;
}
public int getNumGradientCalls() {
return numGradientCalls;
}
public int getNumHessianCalls() {
return numHessianCalls;
}
public double evaluate(double[] oxvec, double[] ogradient) {
gradient(oxvec, ogradient);
return evaluate(oxvec);
}
public double evaluate(double[] oxvec, double[] ogradient, double[][] ohessian) {
hessian(oxvec, ohessian);
gradient(oxvec, ogradient);
return evaluate(oxvec);
}
public void resetNumberOfCalls() {
numEvaluateCalls = 0;
numGradientCalls = 0;
numHessianCalls = 0;
}
}