Author: erans Date: Thu Jan 6 16:17:25 2011 New Revision: 1055929 URL: http://svn.apache.org/viewvc?rev=1055929&view=rev Log: MATH-468 Forgot to commit that file!
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java?rev=1055929&r1=1055928&r2=1055929&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java Thu Jan 6 16:17:25 2011 @@ -35,6 +35,7 @@ import org.apache.commons.math.exception import org.apache.commons.math.exception.MathIllegalArgumentException; import org.apache.commons.math.exception.MathRuntimeException; import org.apache.commons.math.exception.NumberIsTooLargeException; +import org.apache.commons.math.exception.NotFiniteNumberException; /** * Some useful additions to the built-in functions in {...@link Math}. @@ -1841,6 +1842,35 @@ public final class MathUtils { } /** + * Check that the argument is a real number. + * + * @param x Argument. + * @throws NotFiniteNumberException if {...@code x} is not a + * finite real number. + */ + public static void checkFinite(final double x) { + if (Double.isInfinite(x) || Double.isNaN(x)) { + throw new NotFiniteNumberException(x); + } + } + + /** + * Check that all the elements are real number. + * + * @param val Arguments. + * @throws NotFiniteNumberException if any values of the array is not a + * finite real number. + */ + public static void checkFinite(final double[] val) { + for (int i = 0; i < val.length; i++) { + final double x = val[i]; + if (Double.isInfinite(x) || Double.isNaN(x)) { + throw new NotFiniteNumberException(LocalizedFormats.ARRAY_ELEMENT, x, i); + } + } + } + + /** * Returns the Cartesian norm (2-norm), handling both overflow and underflow. * Translation of the minpack enorm subroutine. *