You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2012/10/25 02:20:24 UTC
svn commit: r1401928 - in
/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization:
direct/BaseAbstractMultivariateOptimizer.java
general/AbstractDifferentiableOptimizer.java
general/AbstractScalarDifferentiableOptimizer.java
Author: erans
Date: Thu Oct 25 00:20:24 2012
New Revision: 1401928
URL: http://svn.apache.org/viewvc?rev=1401928&view=rev
Log:
MATH-874
Reduced number of overridden public "optimize" methods (replaced by protected
"optimizeInternal"): whenever the code is ready for 4.0, only the base class's
"optimize" method should define the public API (subclass specifics are handled
in overridden "optimizeInternal" which must call the base class's version to
handle the common setup).
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/direct/BaseAbstractMultivariateOptimizer.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractDifferentiableOptimizer.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractScalarDifferentiableOptimizer.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/direct/BaseAbstractMultivariateOptimizer.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/direct/BaseAbstractMultivariateOptimizer.java?rev=1401928&r1=1401927&r2=1401928&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/direct/BaseAbstractMultivariateOptimizer.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/direct/BaseAbstractMultivariateOptimizer.java Thu Oct 25 00:20:24 2012
@@ -162,7 +162,7 @@ public abstract class BaseAbstractMultiv
* instead.
*/
@Deprecated
- protected PointValuePair optimizeInternal(int maxEval, MultivariateFunction f, GoalType goalType,
+ protected PointValuePair optimizeInternal(int maxEval, FUNC f, GoalType goalType,
double[] startPoint) {
return optimizeInternal(maxEval, f, goalType, new InitialGuess(startPoint));
}
@@ -184,7 +184,7 @@ public abstract class BaseAbstractMultiv
* evaluations is exceeded.
*/
protected PointValuePair optimizeInternal(int maxEval,
- MultivariateFunction f,
+ FUNC f,
GoalType goalType,
OptimizationData... optData)
throws TooManyEvaluationsException {
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractDifferentiableOptimizer.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractDifferentiableOptimizer.java?rev=1401928&r1=1401927&r2=1401928&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractDifferentiableOptimizer.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractDifferentiableOptimizer.java Thu Oct 25 00:20:24 2012
@@ -22,6 +22,8 @@ import org.apache.commons.math3.analysis
import org.apache.commons.math3.analysis.differentiation.MultivariateDifferentiableFunction;
import org.apache.commons.math3.optimization.ConvergenceChecker;
import org.apache.commons.math3.optimization.GoalType;
+import org.apache.commons.math3.optimization.OptimizationData;
+import org.apache.commons.math3.optimization.InitialGuess;
import org.apache.commons.math3.optimization.MultivariateDifferentiableOptimizer;
import org.apache.commons.math3.optimization.PointValuePair;
import org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer;
@@ -35,9 +37,7 @@ import org.apache.commons.math3.optimiza
* @since 3.1
*/
public abstract class AbstractDifferentiableOptimizer
- extends BaseAbstractMultivariateOptimizer<MultivariateDifferentiableFunction>
- implements MultivariateDifferentiableOptimizer {
-
+ extends BaseAbstractMultivariateOptimizer<MultivariateDifferentiableFunction> {
/**
* Objective function gradient.
*/
@@ -60,17 +60,31 @@ public abstract class AbstractDifferenti
return gradient.value(evaluationPoint);
}
+ /**
+ * {@inheritDoc}
+ *
+ * @deprecated In 3.1. Please use
+ * {@link #optimizeInternal(int,MultivariateDifferentiableFunction,GoalType,OptimizationData[])}
+ * instead.
+ */
+ @Override@Deprecated
+ protected PointValuePair optimizeInternal(final int maxEval,
+ final MultivariateDifferentiableFunction f,
+ final GoalType goalType,
+ final double[] startPoint) {
+ return optimizeInternal(maxEval, f, goalType, new InitialGuess(startPoint));
+ }
+
/** {@inheritDoc} */
@Override
- public PointValuePair optimize(final int maxEval, final MultivariateDifferentiableFunction f,
- final GoalType goalType, final double[] startPoint) {
-
- // store optimization problem characteristics
+ protected PointValuePair optimizeInternal(final int maxEval,
+ final MultivariateDifferentiableFunction f,
+ final GoalType goalType,
+ final OptimizationData... optData) {
+ // Store optimization problem characteristics.
gradient = new GradientFunction(f);
- // perform optimization
- return super.optimize(maxEval, f, goalType, startPoint);
-
+ // Perform optimization.
+ return super.optimizeInternal(maxEval, f, goalType, optData);
}
-
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractScalarDifferentiableOptimizer.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractScalarDifferentiableOptimizer.java?rev=1401928&r1=1401927&r2=1401928&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractScalarDifferentiableOptimizer.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/optimization/general/AbstractScalarDifferentiableOptimizer.java Thu Oct 25 00:20:24 2012
@@ -19,7 +19,7 @@ package org.apache.commons.math3.optimiz
import org.apache.commons.math3.analysis.DifferentiableMultivariateFunction;
import org.apache.commons.math3.analysis.MultivariateVectorFunction;
-import org.apache.commons.math3.analysis.differentiation.GradientFunction;
+import org.apache.commons.math3.analysis.FunctionUtils;
import org.apache.commons.math3.analysis.differentiation.MultivariateDifferentiableFunction;
import org.apache.commons.math3.optimization.DifferentiableMultivariateOptimizer;
import org.apache.commons.math3.optimization.GoalType;
@@ -76,14 +76,14 @@ public abstract class AbstractScalarDiff
/** {@inheritDoc} */
@Override
- public PointValuePair optimize(int maxEval,
- final DifferentiableMultivariateFunction f,
- final GoalType goalType,
- final double[] startPoint) {
+ protected PointValuePair optimizeInternal(int maxEval,
+ final DifferentiableMultivariateFunction f,
+ final GoalType goalType,
+ final double[] startPoint) {
// Store optimization problem characteristics.
gradient = f.gradient();
- return optimizeInternal(maxEval, f, goalType, startPoint);
+ return super.optimizeInternal(maxEval, f, goalType, startPoint);
}
/**
@@ -107,9 +107,9 @@ public abstract class AbstractScalarDiff
final MultivariateDifferentiableFunction f,
final GoalType goalType,
final double[] startPoint) {
- // Store optimization problem characteristics.
- gradient = new GradientFunction(f);
-
- return optimizeInternal(maxEval, f, goalType, startPoint);
+ return optimizeInternal(maxEval,
+ FunctionUtils.toDifferentiableMultivariateFunction(f),
+ goalType,
+ startPoint);
}
}