You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2009/07/25 18:13:55 UTC

svn commit: r797786 - /commons/proper/math/trunk/src/java/org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.java

Author: luc
Date: Sat Jul 25 16:13:55 2009
New Revision: 797786

URL: http://svn.apache.org/viewvc?rev=797786&view=rev
Log:
make sure at least one run in the multistart univariate optimizer uses the complete search domain

Modified:
    commons/proper/math/trunk/src/java/org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.java

Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.java?rev=797786&r1=797785&r2=797786&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.java Sat Jul 25 16:13:55 2009
@@ -238,8 +238,8 @@
             try {
                 optimizer.setMaximalIterationCount(maxIterations - totalIterations);
                 optimizer.setMaxEvaluations(maxEvaluations - totalEvaluations);
-                final double bound1 = min + generator.nextDouble() * (max - min);
-                final double bound2 = min + generator.nextDouble() * (max - min);
+                final double bound1 = (i == 0) ? min : min + generator.nextDouble() * (max - min);
+                final double bound2 = (i == 0) ? max : min + generator.nextDouble() * (max - min);
                 optima[i]       = optimizer.optimize(f, goalType,
                                                      Math.min(bound1, bound2),
                                                      Math.max(bound1, bound2));