Author: erans
Date: Fri Oct 28 23:54:32 2011
New Revision: 1190686

URL: http://svn.apache.org/viewvc?rev=1190686&view=rev
Log:
MATH-697
Check that the given starting point is within the bounds.

Modified:
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultivariateRealOptimizer.java
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BaseAbstractScalarOptimizer.java

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultivariateRealOptimizer.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultivariateRealOptimizer.java?rev=1190686&r1=1190685&r2=1190686&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultivariateRealOptimizer.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultivariateRealOptimizer.java
 Fri Oct 28 23:54:32 2011
@@ -73,6 +73,8 @@ public interface BaseMultivariateRealOpt
      * if the maximal number of evaluations is exceeded.
      * @throws org.apache.commons.math.exception.NullArgumentException if
      * {@code f}, {@code goalType} or {@code startPoint} is {@code null}.
+     * @throws org.apache.commons.math.exception.OutOfRangeException if any
+     * of the initial values is out of bounds.
      */
     RealPointValuePair optimize(int maxEval, FUNC f, GoalType goalType,
                                 double[] startPoint,

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BaseAbstractScalarOptimizer.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BaseAbstractScalarOptimizer.java?rev=1190686&r1=1190685&r2=1190686&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BaseAbstractScalarOptimizer.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BaseAbstractScalarOptimizer.java
 Fri Oct 28 23:54:32 2011
@@ -22,6 +22,7 @@ import org.apache.commons.math.exception
 import org.apache.commons.math.exception.TooManyEvaluationsException;
 import org.apache.commons.math.exception.NullArgumentException;
 import org.apache.commons.math.exception.DimensionMismatchException;
+import org.apache.commons.math.exception.OutOfRangeException;
 import org.apache.commons.math.analysis.MultivariateRealFunction;
 import org.apache.commons.math.optimization.BaseMultivariateRealOptimizer;
 import org.apache.commons.math.optimization.GoalType;
@@ -132,6 +133,15 @@ public abstract class BaseAbstractScalar
             upper.length != dim) {
             throw new DimensionMismatchException(upper.length, dim);
         }
+        for (int i = 0; i < dim; i++) {
+            final double v = startPoint[i];
+            final double lo = lower[i];
+            final double hi = upper[i];
+            if (v < lo ||
+                v > hi) {
+                throw new OutOfRangeException(v, lo, hi);
+            }
+        }
 
         // Reset.
         evaluations.setMaximalCount(maxEval);


Reply via email to