Author: erans Date: Fri Jan 7 17:00:57 2011 New Revision: 1056391 URL: http://svn.apache.org/viewvc?rev=1056391&view=rev Log: MATH-466 Throwing exceptions when preconditions are violated.
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java?rev=1056391&r1=1056390&r2=1056391&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java Fri Jan 7 17:00:57 2011 @@ -22,6 +22,8 @@ import java.util.Comparator; import org.apache.commons.math.exception.MathUserException; import org.apache.commons.math.exception.MathIllegalStateException; +import org.apache.commons.math.exception.NullArgumentException; +import org.apache.commons.math.exception.NotStrictlyPositiveException; import org.apache.commons.math.analysis.MultivariateRealFunction; import org.apache.commons.math.exception.util.LocalizedFormats; import org.apache.commons.math.random.RandomVectorGenerator; @@ -58,14 +60,23 @@ public class BaseMultiStartMultivariateR * Create a multi-start optimizer from a single-start optimizer. * * @param optimizer Single-start optimizer to wrap. - * @param starts Number of starts to perform (including the - * first one), multi-start is disabled if value is less than or - * equal to 1. + * @param starts Number of starts to perform. * @param generator Random vector generator to use for restarts. + * @throws NullArgumentException if {...@code optimizer} or {...@code generator} + * is {...@code null}. + * @throws NotStrictlyPositiveException if {...@code starts < 1}. */ protected BaseMultiStartMultivariateRealOptimizer(final BaseMultivariateRealOptimizer<FUNC> optimizer, final int starts, final RandomVectorGenerator generator) { + if (optimizer == null || + generator == null) { + throw new NullArgumentException(); + } + if (starts < 1) { + throw new NotStrictlyPositiveException(starts); + } + this.optimizer = optimizer; this.starts = starts; this.generator = generator; Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java?rev=1056391&r1=1056390&r2=1056391&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java Fri Jan 7 17:00:57 2011 @@ -23,6 +23,8 @@ import java.util.Comparator; import org.apache.commons.math.exception.MathIllegalStateException; import org.apache.commons.math.exception.ConvergenceException; import org.apache.commons.math.exception.MathUserException; +import org.apache.commons.math.exception.NullArgumentException; +import org.apache.commons.math.exception.NotStrictlyPositiveException; import org.apache.commons.math.analysis.MultivariateVectorialFunction; import org.apache.commons.math.exception.util.LocalizedFormats; import org.apache.commons.math.random.RandomVectorGenerator; @@ -58,14 +60,23 @@ public class BaseMultiStartMultivariateV * Create a multi-start optimizer from a single-start optimizer. * * @param optimizer Single-start optimizer to wrap. - * @param starts Number of starts to perform (including the - * first one), multi-start is disabled if value is less than or - * equal to 1. + * @param starts Number of starts to perform. * @param generator Random vector generator to use for restarts. + * @throws NullArgumentException if {...@code optimizer} or {...@code generator} + * is {...@code null}. + * @throws NotStrictlyPositiveException if {...@code starts < 1}. */ protected BaseMultiStartMultivariateVectorialOptimizer(final BaseMultivariateVectorialOptimizer<FUNC> optimizer, final int starts, final RandomVectorGenerator generator) { + if (optimizer == null || + generator == null) { + throw new NullArgumentException(); + } + if (starts < 1) { + throw new NotStrictlyPositiveException(starts); + } + this.optimizer = optimizer; this.starts = starts; this.generator = generator;