diff --git a/src/main/java/org/apache/commons/math/FunctionEvaluationException.java b/src/main/java/org/apache/commons/math/FunctionEvaluationException.java
index 12984a4ad..a37c7e629 100644
--- a/src/main/java/org/apache/commons/math/FunctionEvaluationException.java
+++ b/src/main/java/org/apache/commons/math/FunctionEvaluationException.java
@@ -31,6 +31,10 @@ public class FunctionEvaluationException extends MathException {
/** Serializable version identifier. */
private static final long serialVersionUID = -4305020489115478365L;
+ /** Message for failed evaluation. */
+ private static final String FAILED_EVALUATION_MESSAGE =
+ "evaluation failed for argument = {0}";
+
/** Argument causing function evaluation failure */
private double[] argument;
@@ -41,7 +45,7 @@ public class FunctionEvaluationException extends MathException {
* @param argument the failing function argument
*/
public FunctionEvaluationException(double argument) {
- super("evaluation failed for argument = {0}", argument);
+ super(FAILED_EVALUATION_MESSAGE, argument);
this.argument = new double[] { argument };
}
@@ -53,7 +57,7 @@ public class FunctionEvaluationException extends MathException {
* @since 2.0
*/
public FunctionEvaluationException(double[] argument) {
- super("evaluation failed for argument = {0}", new ArrayRealVector(argument));
+ super(FAILED_EVALUATION_MESSAGE, new ArrayRealVector(argument));
this.argument = argument.clone();
}
diff --git a/src/main/java/org/apache/commons/math/MessagesResources_fr.java b/src/main/java/org/apache/commons/math/MessagesResources_fr.java
index 53bf29f5f..cda511728 100644
--- a/src/main/java/org/apache/commons/math/MessagesResources_fr.java
+++ b/src/main/java/org/apache/commons/math/MessagesResources_fr.java
@@ -43,10 +43,8 @@ public class MessagesResources_fr
{ "cannot raise an integral value to a negative power ({0}^{1})",
"impossible d''\u00e9lever une valeur enti\u00e8re " +
"\u00e0 une puissance n\u00e9gative ({0}^{1})" },
- { "invalid rounding method {0}, valid methods: {1} ({2}), {3} ({4})," +
- " {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})",
- "m\u00e9thode d''arondi {0} invalide, m\u00e9thodes valides : {1} ({2}), {3} ({4})," +
- " {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})" },
+ { "invalid rounding method {0}, valid methods: {1} ({2}), {3} ({4}), {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})",
+ "m\u00e9thode d''arondi {0} invalide, m\u00e9thodes valides : {1} ({2}), {3} ({4}), {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})" },
{ "Cannot normalize to an infinite value",
"impossible de normaliser vers une valeur infinie" },
{ "Cannot normalize to NaN",
@@ -225,7 +223,7 @@ public class MessagesResources_fr
// org.apache.commons.math.optimization.direct.DirectSearchOptimizer
{ "simplex must contain at least one point",
"le simplex doit contenir au moins un point" },
- { "equals vertices {0} and {1} in simplex configuration",
+ { "equal vertices {0} and {1} in simplex configuration",
"sommets {0} et {1} \u00e9gaux dans la configuration du simplex" },
// org.apache.commons.math.estimation.AbstractEstimation
@@ -289,25 +287,17 @@ public class MessagesResources_fr
// org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator
{ "minimal step size ({0,number,0.00E00}) reached, integration needs {1,number,0.00E00}",
"pas minimal ({0,number,0.00E00}) atteint, l''int\u00e9gration n\u00e9cessite {1,number,0.00E00}" },
- { "dimensions mismatch: state vector has dimension {0}," +
- " absolute tolerance vector has dimension {1}",
- "incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0})," +
- " et le vecteur de tol\u00e9rance absolue ({1})" },
- { "dimensions mismatch: state vector has dimension {0}," +
- " relative tolerance vector has dimension {1}",
- "incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0})," +
- " et le vecteur de tol\u00e9rance relative ({1})" },
+ { "dimensions mismatch: state vector has dimension {0}, absolute tolerance vector has dimension {1}",
+ "incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0}), et le vecteur de tol\u00e9rance absolue ({1})" },
+ { "dimensions mismatch: state vector has dimension {0}, relative tolerance vector has dimension {1}",
+ "incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0}), et le vecteur de tol\u00e9rance relative ({1})" },
// org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator,
// org.apache.commons.math.ode.nonstiff.RungeKuttaIntegrator
- { "dimensions mismatch: ODE problem has dimension {0}," +
- " initial state vector has dimension {1}",
- "incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0})," +
- " et le vecteur d''\u00e9tat initial ({1})" },
- { "dimensions mismatch: ODE problem has dimension {0}," +
- " final state vector has dimension {1}",
- "incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0})," +
- " et le vecteur d''\u00e9tat final ({1})" },
+ { "dimensions mismatch: ODE problem has dimension {0}, initial state vector has dimension {1}",
+ "incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0}), et le vecteur d''\u00e9tat initial ({1})" },
+ { "dimensions mismatch: ODE problem has dimension {0}, final state vector has dimension {1}",
+ "incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0}), et le vecteur d''\u00e9tat final ({1})" },
{ "too small integration interval: length = {0}",
"intervalle d''int\u00e9gration trop petit : {0}" },
@@ -392,7 +382,7 @@ public class MessagesResources_fr
// org.apache.commons.math.linear.decomposition.QRDecompositionImpl
// org.apache.commons.math.linear.decomposition.SingularValueDecompositionImpl
{ "dimensions mismatch: got {0}x{1} but expected {2}x{3}",
- "dimensions erronn\u00e9es : {0}x{1} \u00e0 la place de {2}x{3}" },
+ "dimensions incoh\u00e9rentes : {0}x{1} \u00e0 la place de {2}x{3}" },
// org.apache.commons.math.linear.decomposition.CholeskyDecompositionImpl
// org.apache.commons.math.linear.decomposition.EigenDecompositionImpl
@@ -402,7 +392,7 @@ public class MessagesResources_fr
// org.apache.commons.math.linear.ArrayRealVector
// org.apache.commons.math.linear.SparseRealVector
{ "vector length mismatch: got {0} but expected {1}",
- "dimension de vecteur erronn\u00e9e : {0} \u00e0 la place de {1}" },
+ "taille de vecteur invalide : {0} au lieu de {1} attendue" },
// org.apache.commons.math.linear.ArrayRealVector
// org.apache.commons.math.linear.ArrayFieldVector
@@ -420,10 +410,6 @@ public class MessagesResources_fr
"nombre de lignes invalide : {0} (doit \u00eatre positif)" },
{ "invalid column dimension: {0} (must be positive)",
"nombre de colonnes invalide : {0} (doit \u00eatre positif)" },
- { "vector length mismatch: got {0} but expected {1}",
- "taille de vecteur invalide : {0} au lieu de {1} attendue" },
- { "dimensions mismatch: got {0}x{1} but expected {2}x{3}",
- "dimensions incoh\u00e9rentes : {0}x{1} \u00e0 la place de {2}x{3}" },
{ "matrix must have at least one row",
"une matrice doit comporter au moins une ligne" },
{ "matrix must have at least one column",
@@ -648,11 +634,11 @@ public class MessagesResources_fr
// org.apache.commons.math.stat.descriptive.DescriptiveStatistics
{ "window size must be positive ({0})",
"la taille de la fen\u00eatre doit \u00eatre positive ({0})" },
- { "percentile implementation {0} does not support setQuantile",
- "l''implantation de pourcentage {0} ne dispose pas de la m\u00e9thode setQuantile" },
- { "cannot access setQuantile method in percentile implementation {0}",
- "acc\u00e8s impossible \u00e0 la m\u00e9thode setQuantile" +
- " dans l''implantation de pourcentage {0}" },
+ { "percentile implementation {0} does not support {1}",
+ "l''implantation de pourcentage {0} ne dispose pas de la m\u00e9thode {1}" },
+ { "cannot access {0} method in percentile implementation {1}",
+ "acc\u00e8s impossible \u00e0 la m\u00e9thode {0}" +
+ " dans l''implantation de pourcentage {1}" },
{ "out of bounds quantile value: {0}, must be in (0, 100]",
"valeur de quantile {0} hors bornes, doit \u00eatre dans l''intervalle ]0, 100]" },
@@ -679,11 +665,9 @@ public class MessagesResources_fr
// org.apache.commons.math.stat.descriptive.moment.Kurtosis
{ "statistics constructed from external moments cannot be incremented",
- "les statistiques bas\u00e9es sur des moments externes " +
- "ne peuvent pas \u00eatre incr\u00e9ment\u00e9es" },
+ "les statistiques bas\u00e9es sur des moments externes ne peuvent pas \u00eatre incr\u00e9ment\u00e9es" },
{ "statistics constructed from external moments cannot be cleared",
- "les statistiques bas\u00e9es sur des moments externes " +
- "ne peuvent pas \u00eatre remises \u00e0 z\u00e9ro" },
+ "les statistiques bas\u00e9es sur des moments externes ne peuvent pas \u00eatre remises \u00e0 z\u00e9ro" },
// org.apache.commons.math.stat.inference.ChiSquareTestImpl
{ "expected array length = {0}, must be at least 2",
diff --git a/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java b/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java
index ea1534dda..fde8fbb97 100644
--- a/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java
+++ b/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java
@@ -33,8 +33,12 @@ import org.apache.commons.math.analysis.UnivariateRealFunction;
*/
public class PolynomialFunction implements DifferentiableUnivariateRealFunction, Serializable {
+ /** Message for empty coefficients array. */
+ private static final String EMPTY_ARRAY_MESSAGE =
+ "empty polynomials coefficients array";
+
/**
- * Serializtion identifier
+ * Serialization identifier
*/
private static final long serialVersionUID = -7726511984200295583L;
@@ -62,7 +66,7 @@ public class PolynomialFunction implements DifferentiableUnivariateRealFunction,
public PolynomialFunction(double c[]) {
super();
if (c.length < 1) {
- throw MathRuntimeException.createIllegalArgumentException("empty polynomials coefficients array");
+ throw MathRuntimeException.createIllegalArgumentException(EMPTY_ARRAY_MESSAGE);
}
int l = c.length;
while ((l > 1) && (c[l - 1] == 0)) {
@@ -122,7 +126,7 @@ public class PolynomialFunction implements DifferentiableUnivariateRealFunction,
protected static double evaluate(double[] coefficients, double argument) {
int n = coefficients.length;
if (n < 1) {
- throw MathRuntimeException.createIllegalArgumentException("empty polynomials coefficients array");
+ throw MathRuntimeException.createIllegalArgumentException(EMPTY_ARRAY_MESSAGE);
}
double result = coefficients[n - 1];
for (int j = n -2; j >=0; j--) {
@@ -231,7 +235,7 @@ public class PolynomialFunction implements DifferentiableUnivariateRealFunction,
protected static double[] differentiate(double[] coefficients) {
int n = coefficients.length;
if (n < 1) {
- throw MathRuntimeException.createIllegalArgumentException("empty polynomials coefficients array");
+ throw MathRuntimeException.createIllegalArgumentException(EMPTY_ARRAY_MESSAGE);
}
if (n == 1) {
return new double[]{0};
diff --git a/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java b/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java
index 5240e6128..cfe0c1eac 100644
--- a/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java
+++ b/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java
@@ -37,6 +37,15 @@ import org.apache.commons.math.complex.Complex;
* @since 1.2
*/
public class LaguerreSolver extends UnivariateRealSolverImpl {
+
+ /** Message for non-polynomial function. */
+ private static final String NON_POLYNOMIAL_FUNCTION_MESSAGE =
+ "function is not polynomial";
+
+ /** Message for non-positive degree. */
+ private static final String NON_POSITIVE_DEGREE_MESSAGE =
+ "polynomial degree must be positive: degree={0}";
+
/** polynomial function to solve.
* @deprecated as of 2.0 the function is not stored anymore in the instance
*/
@@ -60,7 +69,7 @@ public class LaguerreSolver extends UnivariateRealSolverImpl {
if (f instanceof PolynomialFunction) {
p = (PolynomialFunction) f;
} else {
- throw MathRuntimeException.createIllegalArgumentException("function is not polynomial");
+ throw MathRuntimeException.createIllegalArgumentException(NON_POLYNOMIAL_FUNCTION_MESSAGE);
}
}
@@ -162,7 +171,7 @@ public class LaguerreSolver extends UnivariateRealSolverImpl {
// check function type
if (!(f instanceof PolynomialFunction)) {
- throw MathRuntimeException.createIllegalArgumentException("function is not polynomial");
+ throw MathRuntimeException.createIllegalArgumentException(NON_POLYNOMIAL_FUNCTION_MESSAGE);
}
// check for zeros before verifying bracketing
@@ -255,7 +264,7 @@ public class LaguerreSolver extends UnivariateRealSolverImpl {
int iterationCount = 0;
if (n < 1) {
throw MathRuntimeException.createIllegalArgumentException(
- "polynomial degree must be positive: degree={0}", n);
+ NON_POSITIVE_DEGREE_MESSAGE, n);
}
Complex c[] = new Complex[n+1]; // coefficients for deflated polynomial
for (int i = 0; i <= n; i++) {
@@ -303,7 +312,7 @@ public class LaguerreSolver extends UnivariateRealSolverImpl {
int n = coefficients.length - 1;
if (n < 1) {
throw MathRuntimeException.createIllegalArgumentException(
- "polynomial degree must be positive: degree={0}", n);
+ NON_POSITIVE_DEGREE_MESSAGE, n);
}
Complex N = new Complex(n, 0.0);
Complex N1 = new Complex(n - 1, 0.0);
diff --git a/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java b/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java
index d4c386fee..96fff76c7 100644
--- a/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java
+++ b/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java
@@ -27,6 +27,11 @@ import org.apache.commons.math.analysis.UnivariateRealFunction;
* @version $Revision$ $Date$
*/
public class UnivariateRealSolverUtils {
+
+ /** Message for null function.*/
+ private static final String NULL_FUNCTION_MESSAGE =
+ "function is null";
+
/**
* Default constructor.
*/
@@ -168,7 +173,7 @@ public class UnivariateRealSolverUtils {
FunctionEvaluationException {
if (function == null) {
- throw MathRuntimeException.createIllegalArgumentException("function is null");
+ throw MathRuntimeException.createIllegalArgumentException(NULL_FUNCTION_MESSAGE);
}
if (maximumIterations <= 0) {
throw MathRuntimeException.createIllegalArgumentException(
@@ -225,7 +230,7 @@ public class UnivariateRealSolverUtils {
*/
private static void setup(UnivariateRealFunction f) {
if (f == null) {
- throw MathRuntimeException.createIllegalArgumentException("function is null");
+ throw MathRuntimeException.createIllegalArgumentException(NULL_FUNCTION_MESSAGE);
}
}
diff --git a/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java b/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java
index 3f5d55ad0..661f1e5b7 100644
--- a/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java
+++ b/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java
@@ -32,6 +32,14 @@ import org.apache.commons.math.MathRuntimeException;
public abstract class AbstractIntegerDistribution extends AbstractDistribution
implements IntegerDistribution, Serializable {
+ /** Message for endpoints in wrong order. */
+ private static final String WRONG_ORDER_ENDPOINTS_MESSAGE =
+ "lower endpoint ({0}) must be less than or equal to upper endpoint ({1})";
+
+ /** Message for out of range point. */
+ private static final String OUT_OF_RANGE_POINT =
+ "{0} out of [{1}, {2}] range";
+
/** Serializable version identifier */
private static final long serialVersionUID = -1146319659338487221L;
@@ -79,8 +87,7 @@ public abstract class AbstractIntegerDistribution extends AbstractDistribution
throws MathException {
if (x0 > x1) {
throw MathRuntimeException.createIllegalArgumentException(
- "lower endpoint ({0}) must be less than or equal to upper endpoint ({1})",
- x0, x1);
+ WRONG_ORDER_ENDPOINTS_MESSAGE, x0, x1);
}
if (Math.floor(x0) < x0) {
return cumulativeProbability(((int) Math.floor(x0)) + 1,
@@ -137,8 +144,7 @@ public abstract class AbstractIntegerDistribution extends AbstractDistribution
public double cumulativeProbability(int x0, int x1) throws MathException {
if (x0 > x1) {
throw MathRuntimeException.createIllegalArgumentException(
- "lower endpoint ({0}) must be less than or equal to upper endpoint ({1})",
- x0, x1);
+ WRONG_ORDER_ENDPOINTS_MESSAGE, x0, x1);
}
return cumulativeProbability(x1) - cumulativeProbability(x0 - 1);
}
@@ -157,7 +163,7 @@ public abstract class AbstractIntegerDistribution extends AbstractDistribution
public int inverseCumulativeProbability(final double p) throws MathException{
if (p < 0.0 || p > 1.0) {
throw MathRuntimeException.createIllegalArgumentException(
- "{0} out of [{1}, {2}] range", p, 0.0, 1.0);
+ OUT_OF_RANGE_POINT, p, 0.0, 1.0);
}
// by default, do simple bisection.
diff --git a/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java b/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java
index 297530383..0b95fd8aa 100644
--- a/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java
+++ b/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java
@@ -32,6 +32,10 @@ public class FDistributionImpl
extends AbstractContinuousDistribution
implements FDistribution, Serializable {
+ /** Message for non positive degrees of freddom. */
+ private static final String NON_POSITIVE_DEGREES_OF_FREEDOM_MESSAGE =
+ "degrees of freedom must be positive ({0})";
+
/** Serializable version identifier */
private static final long serialVersionUID = -8516354193418641566L;
@@ -164,8 +168,7 @@ public class FDistributionImpl
public void setNumeratorDegreesOfFreedom(double degreesOfFreedom) {
if (degreesOfFreedom <= 0.0) {
throw MathRuntimeException.createIllegalArgumentException(
- "degrees of freedom must be positive ({0})",
- degreesOfFreedom);
+ NON_POSITIVE_DEGREES_OF_FREEDOM_MESSAGE, degreesOfFreedom);
}
this.numeratorDegreesOfFreedom = degreesOfFreedom;
}
@@ -187,8 +190,7 @@ public class FDistributionImpl
public void setDenominatorDegreesOfFreedom(double degreesOfFreedom) {
if (degreesOfFreedom <= 0.0) {
throw MathRuntimeException.createIllegalArgumentException(
- "degrees of freedom must be positive ({0})",
- degreesOfFreedom);
+ NON_POSITIVE_DEGREES_OF_FREEDOM_MESSAGE, degreesOfFreedom);
}
this.denominatorDegreesOfFreedom = degreesOfFreedom;
}
diff --git a/src/main/java/org/apache/commons/math/fraction/BigFraction.java b/src/main/java/org/apache/commons/math/fraction/BigFraction.java
index bd2849444..cb86cf19b 100644
--- a/src/main/java/org/apache/commons/math/fraction/BigFraction.java
+++ b/src/main/java/org/apache/commons/math/fraction/BigFraction.java
@@ -80,6 +80,10 @@ public class BigFraction
/** Serializable version identifier. */
private static final long serialVersionUID = -5630213147331578515L;
+ /** Message for zero denominator. */
+ private static final String FORBIDDEN_ZERO_DENOMINATOR =
+ "denominator must be different from 0";
+
/** BigInteger
representation of 100. */
private static final BigInteger ONE_HUNDRED_DOUBLE = BigInteger.valueOf(100);
@@ -125,7 +129,7 @@ public class BigFraction
throw MathRuntimeException.createNullPointerException("denominator is null");
}
if (BigInteger.ZERO.equals(den)) {
- throw MathRuntimeException.createArithmeticException("denominator must be different from 0");
+ throw MathRuntimeException.createArithmeticException(FORBIDDEN_ZERO_DENOMINATOR);
}
if (BigInteger.ZERO.equals(num)) {
numerator = BigInteger.ZERO;
@@ -615,7 +619,7 @@ public class BigFraction
*/
public BigFraction divide(final BigInteger bg) {
if (BigInteger.ZERO.equals(bg)) {
- throw MathRuntimeException.createArithmeticException("denominator must be different from 0");
+ throw MathRuntimeException.createArithmeticException(FORBIDDEN_ZERO_DENOMINATOR);
}
return new BigFraction(numerator, denominator.multiply(bg));
}
@@ -668,7 +672,7 @@ public class BigFraction
*/
public BigFraction divide(final BigFraction fraction) {
if (BigInteger.ZERO.equals(fraction.numerator)) {
- throw MathRuntimeException.createArithmeticException("denominator must be different from 0");
+ throw MathRuntimeException.createArithmeticException(FORBIDDEN_ZERO_DENOMINATOR);
}
return multiply(fraction.reciprocal());
diff --git a/src/main/java/org/apache/commons/math/fraction/Fraction.java b/src/main/java/org/apache/commons/math/fraction/Fraction.java
index 0a523329a..ccd91d2c8 100644
--- a/src/main/java/org/apache/commons/math/fraction/Fraction.java
+++ b/src/main/java/org/apache/commons/math/fraction/Fraction.java
@@ -77,6 +77,18 @@ public class Fraction
/** A fraction representing "-1 / 1". */
public static final Fraction MINUS_ONE = new Fraction(-1, 1);
+ /** Message for zero denominator. */
+ private static final String ZERO_DENOMINATOR_MESSAGE =
+ "zero denominator in fraction {0}/{1}";
+
+ /** Message for overflow. */
+ private static final String OVERFLOW_MESSAGE =
+ "overflow in fraction {0}/{1}, cannot negate";
+
+ /** Message for null fraction. */
+ private static final String NULL_FRACTION =
+ "null fraction";
+
/** Serializable version identifier */
private static final long serialVersionUID = 3698073679419233275L;
@@ -252,13 +264,13 @@ public class Fraction
*/
public Fraction(int num, int den) {
if (den == 0) {
- throw MathRuntimeException.createArithmeticException("zero denominator in fraction {0}/{1}",
- num, den);
+ throw MathRuntimeException.createArithmeticException(
+ ZERO_DENOMINATOR_MESSAGE, num, den);
}
if (den < 0) {
if (num == Integer.MIN_VALUE || den == Integer.MIN_VALUE) {
- throw MathRuntimeException.createArithmeticException("overflow in fraction {0}/{1}, cannot negate",
- num, den);
+ throw MathRuntimeException.createArithmeticException(
+ OVERFLOW_MESSAGE, num, den);
}
num = -num;
den = -den;
@@ -409,8 +421,8 @@ public class Fraction
*/
public Fraction negate() {
if (numerator==Integer.MIN_VALUE) {
- throw MathRuntimeException.createArithmeticException("overflow in fraction {0}/{1}, cannot negate",
- numerator, denominator);
+ throw MathRuntimeException.createArithmeticException(
+ OVERFLOW_MESSAGE, numerator, denominator);
}
return new Fraction(-numerator, denominator);
}
@@ -481,7 +493,7 @@ public class Fraction
*/
private Fraction addSub(Fraction fraction, boolean isAdd) {
if (fraction == null) {
- throw MathRuntimeException.createIllegalArgumentException("null fraction");
+ throw MathRuntimeException.createIllegalArgumentException(NULL_FRACTION);
}
// zero is identity for addition.
if (numerator == 0) {
@@ -538,7 +550,7 @@ public class Fraction
*/
public Fraction multiply(Fraction fraction) {
if (fraction == null) {
- throw MathRuntimeException.createIllegalArgumentException("null fraction");
+ throw MathRuntimeException.createIllegalArgumentException(NULL_FRACTION);
}
if (numerator == 0 || fraction.numerator == 0) {
return ZERO;
@@ -573,7 +585,7 @@ public class Fraction
*/
public Fraction divide(Fraction fraction) {
if (fraction == null) {
- throw MathRuntimeException.createIllegalArgumentException("null fraction");
+ throw MathRuntimeException.createIllegalArgumentException(NULL_FRACTION);
}
if (fraction.numerator == 0) {
throw MathRuntimeException.createArithmeticException(
@@ -606,8 +618,7 @@ public class Fraction
public static Fraction getReducedFraction(int numerator, int denominator) {
if (denominator == 0) {
throw MathRuntimeException.createArithmeticException(
- "zero denominator in fraction {0}/{1}",
- numerator, denominator);
+ ZERO_DENOMINATOR_MESSAGE, numerator, denominator);
}
if (numerator==0) {
return ZERO; // normalize zero.
@@ -620,8 +631,7 @@ public class Fraction
if (numerator==Integer.MIN_VALUE ||
denominator==Integer.MIN_VALUE) {
throw MathRuntimeException.createArithmeticException(
- "overflow in fraction {0}/{1}, cannot negate",
- numerator, denominator);
+ OVERFLOW_MESSAGE, numerator, denominator);
}
numerator = -numerator;
denominator = -denominator;
diff --git a/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java b/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java
index 7273d68b9..064e37406 100644
--- a/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java
+++ b/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java
@@ -39,6 +39,26 @@ public class Array2DRowFieldMatrix> extends AbstractFi
/** Serializable version identifier */
private static final long serialVersionUID = 7260756672015356458L;
+ /** Message for at least one row. */
+ private static final String AT_LEAST_ONE_ROW_MESSAGE =
+ "matrix must have at least one row";
+
+ /** Message for at least one column. */
+ private static final String AT_LEAST_ONE_COLUMN_MESSAGE =
+ "matrix must have at least one column";
+
+ /** Message for different rows lengths. */
+ private static final String DIFFERENT_ROWS_LENGTHS_MESSAGE =
+ "some rows have length {0} while others have length {1}";
+
+ /** Message for no entry at selected indices. */
+ private static final String NO_ENTRY_MESSAGE =
+ "no entry at indices ({0}, {1}) in a {2}x{3} matrix";
+
+ /** Message for vector lengths mismatch. */
+ private static final String VECTOR_LENGTHS_MISMATCH =
+ "vector length mismatch: got {0} but expected {1}";
+
/** Entries of the matrix */
protected T[][] data;
@@ -111,17 +131,18 @@ public class Array2DRowFieldMatrix> extends AbstractFi
}
final int nRows = d.length;
if (nRows == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one row");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_ROW_MESSAGE);
}
final int nCols = d[0].length;
if (nCols == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one column");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_COLUMN_MESSAGE);
}
for (int r = 1; r < nRows; r++) {
if (d[r].length != nCols) {
throw MathRuntimeException.createIllegalArgumentException(
- "some rows have length {0} while others have length {1}",
- nCols, d[r].length);
+ DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, d[r].length);
}
}
data = d;
@@ -306,29 +327,28 @@ public class Array2DRowFieldMatrix> extends AbstractFi
if (data == null) {
if (row > 0) {
throw MathRuntimeException.createIllegalStateException(
- "first {0} rows are not initialized yet",
- row);
+ "first {0} rows are not initialized yet", row);
}
if (column > 0) {
throw MathRuntimeException.createIllegalStateException(
- "first {0} columns are not initialized yet",
- column);
+ "first {0} columns are not initialized yet", column);
}
final int nRows = subMatrix.length;
if (nRows == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one row");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_ROW_MESSAGE);
}
final int nCols = subMatrix[0].length;
if (nCols == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one column");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_COLUMN_MESSAGE);
}
data = buildArray(getField(), subMatrix.length, nCols);
for (int i = 0; i < data.length; ++i) {
if (subMatrix[i].length != nCols) {
throw MathRuntimeException.createIllegalArgumentException(
- "some rows have length {0} while others have length {1}",
- nCols, subMatrix[i].length);
+ DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, subMatrix[i].length);
}
System.arraycopy(subMatrix[i], 0, data[i + row], column, nCols);
}
@@ -346,8 +366,7 @@ public class Array2DRowFieldMatrix> extends AbstractFi
return data[row][column];
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -359,8 +378,7 @@ public class Array2DRowFieldMatrix> extends AbstractFi
data[row][column] = value;
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -372,8 +390,7 @@ public class Array2DRowFieldMatrix> extends AbstractFi
data[row][column] = data[row][column].add(increment);
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -385,8 +402,7 @@ public class Array2DRowFieldMatrix> extends AbstractFi
data[row][column] = data[row][column].multiply(factor);
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -410,8 +426,7 @@ public class Array2DRowFieldMatrix> extends AbstractFi
final int nCols = this.getColumnDimension();
if (v.length != nCols) {
throw MathRuntimeException.createIllegalArgumentException(
- "vector length mismatch: got {0} but expected {1}",
- v.length, nCols);
+ VECTOR_LENGTHS_MISMATCH, v.length, nCols);
}
final T[] out = buildArray(getField(), nRows);
for (int row = 0; row < nRows; row++) {
@@ -434,8 +449,7 @@ public class Array2DRowFieldMatrix> extends AbstractFi
final int nCols = getColumnDimension();
if (v.length != nRows) {
throw MathRuntimeException.createIllegalArgumentException(
- "vector length mismatch: got {0} but expected {1}",
- v.length, nRows);
+ VECTOR_LENGTHS_MISMATCH, v.length, nRows);
}
final T[] out = buildArray(getField(), nCols);
diff --git a/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java b/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java
index 807e3aad8..b40cd3ede 100644
--- a/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java
+++ b/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java
@@ -54,6 +54,26 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
/** Serializable version identifier */
private static final long serialVersionUID = -1067294169172445528L;
+ /** Message for at least one row. */
+ private static final String AT_LEAST_ONE_ROW_MESSAGE =
+ "matrix must have at least one row";
+
+ /** Message for at least one column. */
+ private static final String AT_LEAST_ONE_COLUMN_MESSAGE =
+ "matrix must have at least one column";
+
+ /** Message for different rows lengths. */
+ private static final String DIFFERENT_ROWS_LENGTHS_MESSAGE =
+ "some rows have length {0} while others have length {1}";
+
+ /** Message for no entry at selected indices. */
+ private static final String NO_ENTRY_MESSAGE =
+ "no entry at indices ({0}, {1}) in a {2}x{3} matrix";
+
+ /** Message for vector lengths mismatch. */
+ private static final String VECTOR_LENGTHS_MISMATCH =
+ "vector length mismatch: got {0} but expected {1}";
+
/** Entries of the matrix */
protected double data[][];
@@ -120,17 +140,18 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
}
final int nRows = d.length;
if (nRows == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one row");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_ROW_MESSAGE);
}
final int nCols = d[0].length;
if (nCols == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one column");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_COLUMN_MESSAGE);
}
for (int r = 1; r < nRows; r++) {
if (d[r].length != nCols) {
throw MathRuntimeException.createIllegalArgumentException(
- "some rows have length {0} while others have length {1}",
- nCols, d[r].length);
+ DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, d[r].length);
}
}
data = d;
@@ -314,29 +335,28 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
if (data == null) {
if (row > 0) {
throw MathRuntimeException.createIllegalStateException(
- "first {0} rows are not initialized yet",
- row);
+ "first {0} rows are not initialized yet", row);
}
if (column > 0) {
throw MathRuntimeException.createIllegalStateException(
- "first {0} columns are not initialized yet",
- column);
+ "first {0} columns are not initialized yet", column);
}
final int nRows = subMatrix.length;
if (nRows == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one row");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_ROW_MESSAGE);
}
final int nCols = subMatrix[0].length;
if (nCols == 0) {
- throw MathRuntimeException.createIllegalArgumentException("matrix must have at least one column");
+ throw MathRuntimeException.createIllegalArgumentException(
+ AT_LEAST_ONE_COLUMN_MESSAGE);
}
data = new double[subMatrix.length][nCols];
for (int i = 0; i < data.length; ++i) {
if (subMatrix[i].length != nCols) {
throw MathRuntimeException.createIllegalArgumentException(
- "some rows have length {0} while others have length {1}",
- nCols, subMatrix[i].length);
+ DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, subMatrix[i].length);
}
System.arraycopy(subMatrix[i], 0, data[i + row], column, nCols);
}
@@ -354,8 +374,7 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
return data[row][column];
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -367,8 +386,7 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
data[row][column] = value;
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -380,8 +398,7 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
data[row][column] += increment;
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -393,8 +410,7 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
data[row][column] *= factor;
} catch (ArrayIndexOutOfBoundsException e) {
throw new MatrixIndexException(
- "no entry at indices ({0}, {1}) in a {2}x{3} matrix",
- row, column, getRowDimension(), getColumnDimension());
+ NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
}
}
@@ -418,8 +434,7 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
final int nCols = this.getColumnDimension();
if (v.length != nCols) {
throw MathRuntimeException.createIllegalArgumentException(
- "vector length mismatch: got {0} but expected {1}",
- v.length, nCols);
+ VECTOR_LENGTHS_MISMATCH, v.length, nCols);
}
final double[] out = new double[nRows];
for (int row = 0; row < nRows; row++) {
@@ -442,8 +457,7 @@ public class Array2DRowRealMatrix extends AbstractRealMatrix implements Serializ
final int nCols = getColumnDimension();
if (v.length != nRows) {
throw MathRuntimeException.createIllegalArgumentException(
- "vector length mismatch: got {0} but expected {1}",
- v.length, nRows);
+ VECTOR_LENGTHS_MISMATCH, v.length, nRows);
}
final double[] out = new double[nCols];
diff --git a/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java b/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
index 004fd4237..cd4fb68a0 100644
--- a/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
+++ b/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
@@ -29,6 +29,10 @@ import org.apache.commons.math.util.MathUtils;
*/
public class ArrayRealVector implements RealVector, Serializable {
+ /** Message for non fitting position and size. */
+ private static final String NON_FITTING_POSITION_AND_SIZE_MESSAGE =
+ "position {0} and size {1} don't fit to the size of the input array {2}";
+
/** Serializable version identifier. */
private static final long serialVersionUID = -1097961340710804027L;
@@ -112,8 +116,7 @@ public class ArrayRealVector implements RealVector, Serializable {
public ArrayRealVector(double[] d, int pos, int size) {
if (d.length < pos + size) {
throw MathRuntimeException.createIllegalArgumentException(
- "position {0} and size {1} don't fit to the size of the input array {2}",
- pos, size, d.length);
+ NON_FITTING_POSITION_AND_SIZE_MESSAGE, pos, size, d.length);
}
data = new double[size];
System.arraycopy(d, pos, data, 0, size);
@@ -139,8 +142,7 @@ public class ArrayRealVector implements RealVector, Serializable {
public ArrayRealVector(Double[] d, int pos, int size) {
if (d.length < pos + size) {
throw MathRuntimeException.createIllegalArgumentException(
- "position {0} and size {1} don't fit to the size of the input array {2}",
- pos, size, d.length);
+ NON_FITTING_POSITION_AND_SIZE_MESSAGE, pos, size, d.length);
}
data = new double[size];
for (int i = pos; i < pos + size; i++) {
diff --git a/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java b/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java
index 2f403c037..87db6a1d3 100644
--- a/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java
+++ b/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java
@@ -36,6 +36,10 @@ public class LUDecompositionImpl implements LUDecomposition {
/** Default bound to determine effective singularity in LU decomposition */
private static final double DEFAULT_TOO_SMALL = 10E-12;
+ /** Message for vector length mismatch. */
+ private static final String VECTOR_LENGTH_MISMATCH_MESSAGE =
+ "vector length mismatch: got {0} but expected {1}";
+
/** Entries of LU decomposition. */
private double lu[][];
@@ -262,8 +266,7 @@ public class LUDecompositionImpl implements LUDecomposition {
final int m = pivot.length;
if (b.length != m) {
throw MathRuntimeException.createIllegalArgumentException(
- "vector length mismatch: got {0} but expected {1}",
- b.length, m);
+ VECTOR_LENGTH_MISMATCH_MESSAGE, b.length, m);
}
if (singular) {
throw new SingularMatrixException();
@@ -307,8 +310,7 @@ public class LUDecompositionImpl implements LUDecomposition {
final int m = pivot.length;
if (b.getDimension() != m) {
throw MathRuntimeException.createIllegalArgumentException(
- "vector length mismatch: got {0} but expected {1}",
- b.getDimension(), m);
+ VECTOR_LENGTH_MISMATCH_MESSAGE, b.getDimension(), m);
}
if (singular) {
throw new SingularMatrixException();
diff --git a/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java b/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java
index 663304bab..4b0a68968 100644
--- a/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java
+++ b/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java
@@ -87,6 +87,14 @@ import org.apache.commons.math.optimization.SimpleScalarValueChecker;
*/
public abstract class DirectSearchOptimizer implements MultivariateRealOptimizer {
+ /** Message for equal vertices. */
+ private static final String EQUAL_VERTICES_MESSAGE =
+ "equal vertices {0} and {1} in simplex configuration";
+
+ /** Message for dimension mismatch. */
+ private static final String DIMENSION_MISMATCH_MESSAGE =
+ "dimension mismatch {0} != {1}";
+
/** Simplex. */
protected RealPointValuePair[] simplex;
@@ -146,8 +154,7 @@ public abstract class DirectSearchOptimizer implements MultivariateRealOptimizer
for (int j = 0; j < i + 1; ++j) {
if (steps[j] == 0.0) {
throw MathRuntimeException.createIllegalArgumentException(
- "equals vertices {0} and {1} in simplex configuration",
- j, j + 1);
+ EQUAL_VERTICES_MESSAGE, j, j + 1);
}
System.arraycopy(steps, 0, vertexI, 0, j + 1);
}
@@ -184,8 +191,7 @@ public abstract class DirectSearchOptimizer implements MultivariateRealOptimizer
// safety checks
if (refI.length != n) {
throw MathRuntimeException.createIllegalArgumentException(
- "dimension mismatch {0} != {1}",
- refI.length, n);
+ DIMENSION_MISMATCH_MESSAGE, refI.length, n);
}
for (int j = 0; j < i; ++j) {
final double[] refJ = referenceSimplex[j];
@@ -198,8 +204,7 @@ public abstract class DirectSearchOptimizer implements MultivariateRealOptimizer
}
if (allEquals) {
throw MathRuntimeException.createIllegalArgumentException(
- "equals vertices {0} and {1} in simplex configuration",
- i, j);
+ EQUAL_VERTICES_MESSAGE, i, j);
}
}
@@ -360,8 +365,7 @@ public abstract class DirectSearchOptimizer implements MultivariateRealOptimizer
final int n = startPoint.length;
if (n != startConfiguration.length) {
throw MathRuntimeException.createIllegalArgumentException(
- "dimension mismatch {0} != {1}",
- n, startConfiguration.length);
+ DIMENSION_MISMATCH_MESSAGE, n, startConfiguration.length);
}
// set first vertex
diff --git a/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java b/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java
index 49d0d2903..cbd7c0f11 100644
--- a/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java
+++ b/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java
@@ -62,6 +62,9 @@ import org.apache.commons.math.util.MathUtils;
*/
class SimplexTableau implements Serializable {
+ /** Column label for negative vars. */
+ private static final String NEGATIVE_VAR_COLUMN_LABEL = "x-";
+
/** Serializable version identifier. */
private static final long serialVersionUID = -1369660067587938365L;
@@ -131,7 +134,7 @@ class SimplexTableau implements Serializable {
columnLabels.add("x" + i);
}
if (!restrictToNonNegative) {
- columnLabels.add("x-");
+ columnLabels.add(NEGATIVE_VAR_COLUMN_LABEL);
}
for (int i = 0; i < getNumSlackVariables(); i++) {
columnLabels.add("s" + i);
@@ -363,7 +366,7 @@ class SimplexTableau implements Serializable {
* @return current solution
*/
protected RealPointValuePair getSolution() {
- int negativeVarColumn = columnLabels.indexOf("x-");
+ int negativeVarColumn = columnLabels.indexOf(NEGATIVE_VAR_COLUMN_LABEL);
Integer negativeVarBasicRow = negativeVarColumn > 0 ? getBasicRow(negativeVarColumn) : null;
double mostNegative = negativeVarBasicRow == null ? 0 : getEntry(negativeVarBasicRow, getRhsOffset());
diff --git a/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java b/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
index 81f0e5044..550e9309f 100644
--- a/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
+++ b/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
@@ -65,6 +65,17 @@ public class DescriptiveStatistics implements StatisticalSummary, Serializable {
/** Serialization UID */
private static final long serialVersionUID = 4133067267405273064L;
+ /** Name of the setQuantile method. */
+ private static final String SET_QUANTILE_METHOD_NAME = "setQuantile";
+
+ /** Message for unsupported setQuantile. */
+ private static final String UNSUPPORTED_METHOD_MESSAGE =
+ "percentile implementation {0} does not support {1}";
+
+ /** Message for illegal accesson setquantile. */
+ private static final String ILLEGAL_ACCESS_MESSAGE =
+ "cannot access {0} method in percentile implementation {1}";
+
/** hold the window size **/
protected int windowSize = INFINITE_WINDOW;
@@ -377,17 +388,17 @@ public class DescriptiveStatistics implements StatisticalSummary, Serializable {
((Percentile) percentileImpl).setQuantile(p);
} else {
try {
- percentileImpl.getClass().getMethod("setQuantile",
+ percentileImpl.getClass().getMethod(SET_QUANTILE_METHOD_NAME,
new Class[] {Double.TYPE}).invoke(percentileImpl,
new Object[] {Double.valueOf(p)});
} catch (NoSuchMethodException e1) { // Setter guard should prevent
throw MathRuntimeException.createIllegalArgumentException(
- "percentile implementation {0} does not support setQuantile",
- percentileImpl.getClass().getName());
+ UNSUPPORTED_METHOD_MESSAGE,
+ percentileImpl.getClass().getName(), SET_QUANTILE_METHOD_NAME);
} catch (IllegalAccessException e2) {
throw MathRuntimeException.createIllegalArgumentException(
- "cannot access setQuantile method in percentile implementation {0}",
- percentileImpl.getClass().getName());
+ ILLEGAL_ACCESS_MESSAGE,
+ SET_QUANTILE_METHOD_NAME, percentileImpl.getClass().getName());
} catch (InvocationTargetException e3) {
throw MathRuntimeException.createIllegalArgumentException(e3.getCause());
}
@@ -560,7 +571,7 @@ public class DescriptiveStatistics implements StatisticalSummary, Serializable {
public synchronized void setPercentileImpl(
UnivariateStatistic percentileImpl) {
try {
- percentileImpl.getClass().getMethod("setQuantile",
+ percentileImpl.getClass().getMethod(SET_QUANTILE_METHOD_NAME,
new Class[] {Double.TYPE}).invoke(percentileImpl,
new Object[] {Double.valueOf(50.0d)});
} catch (NoSuchMethodException e1) {
@@ -569,8 +580,8 @@ public class DescriptiveStatistics implements StatisticalSummary, Serializable {
percentileImpl.getClass().getName());
} catch (IllegalAccessException e2) {
throw MathRuntimeException.createIllegalArgumentException(
- "cannot access setQuantile method in percentile implementation {0}",
- percentileImpl.getClass().getName());
+ ILLEGAL_ACCESS_MESSAGE,
+ SET_QUANTILE_METHOD_NAME, percentileImpl.getClass().getName());
} catch (InvocationTargetException e3) {
throw MathRuntimeException.createIllegalArgumentException(e3.getCause());
}
diff --git a/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java b/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java
index 3e0195ab3..887fe71f2 100644
--- a/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java
+++ b/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java
@@ -33,6 +33,10 @@ import org.apache.commons.math.stat.descriptive.StatisticalSummary;
*/
public class TTestImpl implements TTest {
+ /** Message for insufficient data. */
+ private static final String INSUFFICIENT_DATA_MESSAGE =
+ "insufficient data for t statistic, needs at least 2, got {0}";
+
/** Distribution used to compute inference statistics. */
private TDistribution distribution;
@@ -1039,7 +1043,7 @@ public class TTestImpl implements TTest {
throws IllegalArgumentException {
if ((data == null) || (data.length < 2)) {
throw MathRuntimeException.createIllegalArgumentException(
- "insufficient data for t statistic, needs at least 2, got {0}",
+ INSUFFICIENT_DATA_MESSAGE,
(data == null) ? 0 : data.length);
}
}
@@ -1052,7 +1056,7 @@ public class TTestImpl implements TTest {
throws IllegalArgumentException {
if ((stat == null) || (stat.getN() < 2)) {
throw MathRuntimeException.createIllegalArgumentException(
- "insufficient data for t statistic, needs at least 2, got {0}",
+ INSUFFICIENT_DATA_MESSAGE,
(stat == null) ? 0 : stat.getN());
}
}
diff --git a/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java b/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java
index d70ec0e80..029578267 100644
--- a/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java
+++ b/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java
@@ -48,6 +48,22 @@ public class FastFourierTransformer implements Serializable {
/** Serializable version identifier. */
static final long serialVersionUID = 5138259215438106000L;
+ /** Message for not power of 2. */
+ private static final String NOT_POWER_OF_TWO_MESSAGE =
+ "{0} is not a power of 2, consider padding for fix";
+
+ /** Message for dimension mismatch. */
+ private static final String DIMENSION_MISMATCH_MESSAGE =
+ "some dimensions don't match: {0} != {1}";
+
+ /** Message for not computed roots of unity. */
+ private static final String MISSING_ROOTS_OF_UNITY_MESSAGE =
+ "roots of unity have not been computed yet";
+
+ /** Message for out of range root index. */
+ private static final String OUT_OF_RANGE_ROOT_INDEX_MESSAGE =
+ "out of range root of unity index {0} (must be in [{1};{2}])";
+
/** roots of unity */
private RootsOfUnity roots = new RootsOfUnity();
@@ -494,8 +510,7 @@ public class FastFourierTransformer implements Serializable {
public static void verifyDataSet(double d[]) throws IllegalArgumentException {
if (!isPowerOf2(d.length)) {
throw MathRuntimeException.createIllegalArgumentException(
- "{0} is not a power of 2, consider padding for fix",
- d.length);
+ NOT_POWER_OF_TWO_MESSAGE, d.length);
}
}
@@ -508,8 +523,7 @@ public class FastFourierTransformer implements Serializable {
public static void verifyDataSet(Object o[]) throws IllegalArgumentException {
if (!isPowerOf2(o.length)) {
throw MathRuntimeException.createIllegalArgumentException(
- "{0} is not a power of 2, consider padding for fix",
- o.length);
+ NOT_POWER_OF_TWO_MESSAGE, o.length);
}
}
@@ -663,15 +677,13 @@ public class FastFourierTransformer implements Serializable {
if (vector == null) {
if (dimensionSize.length > 0) {
throw MathRuntimeException.createIllegalArgumentException(
- "some dimensions don't match: {0} != {1}",
- 0, dimensionSize.length);
+ DIMENSION_MISMATCH_MESSAGE, 0, dimensionSize.length);
}
return null;
}
if (vector.length != dimensionSize.length) {
throw MathRuntimeException.createIllegalArgumentException(
- "some dimensions don't match: {0} != {1}",
- vector.length, dimensionSize.length);
+ DIMENSION_MISMATCH_MESSAGE, vector.length, dimensionSize.length);
}
Object lastDimension = multiDimensionalComplexArray;
@@ -694,15 +706,13 @@ public class FastFourierTransformer implements Serializable {
if (vector == null) {
if (dimensionSize.length > 0) {
throw MathRuntimeException.createIllegalArgumentException(
- "some dimensions don't match: {0} != {1}",
- 0, dimensionSize.length);
+ DIMENSION_MISMATCH_MESSAGE, 0, dimensionSize.length);
}
return null;
}
if (vector.length != dimensionSize.length) {
throw MathRuntimeException.createIllegalArgumentException(
- "some dimensions don't match: {0} != {1}",
- vector.length,dimensionSize.length);
+ DIMENSION_MISMATCH_MESSAGE, vector.length,dimensionSize.length);
}
Object[] lastDimension = (Object[]) multiDimensionalComplexArray;
@@ -818,7 +828,7 @@ public class FastFourierTransformer implements Serializable {
if (omegaCount == 0) {
throw MathRuntimeException.createIllegalStateException(
- "roots of unity have not been computed yet");
+ MISSING_ROOTS_OF_UNITY_MESSAGE);
}
return isForward;
@@ -882,12 +892,11 @@ public class FastFourierTransformer implements Serializable {
if (omegaCount == 0) {
throw MathRuntimeException.createIllegalStateException(
- "roots of unity have not been computed yet");
+ MISSING_ROOTS_OF_UNITY_MESSAGE);
}
if ((k < 0) || (k >= omegaCount)) {
throw MathRuntimeException.createIllegalArgumentException(
- "out of range root of unity index {0} (must be in [{1};{2}])",
- k, 0, omegaCount - 1);
+ OUT_OF_RANGE_ROOT_INDEX_MESSAGE, k, 0, omegaCount - 1);
}
return omegaReal[k];
@@ -906,12 +915,11 @@ public class FastFourierTransformer implements Serializable {
if (omegaCount == 0) {
throw MathRuntimeException.createIllegalStateException(
- "roots of unity have not been computed yet");
+ MISSING_ROOTS_OF_UNITY_MESSAGE);
}
if ((k < 0) || (k >= omegaCount)) {
throw MathRuntimeException.createIllegalArgumentException(
- "out of range root of unity index {0} (must be in [{1};{2}])",
- k, 0, omegaCount - 1);
+ OUT_OF_RANGE_ROOT_INDEX_MESSAGE, k, 0, omegaCount - 1);
}
return isForward ? omegaImaginaryForward[k] : omegaImaginaryInverse[k];
diff --git a/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java b/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java
index 7bc4a80dd..e0f38ae16 100644
--- a/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java
+++ b/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java
@@ -50,6 +50,14 @@ public class OpenIntToDoubleHashMap implements Serializable {
/** Serializable version identifier */
private static final long serialVersionUID = -3646337053166149105L;
+ /** Message for map modification during iteration. */
+ private static final String CONCURRENT_MODIFICATION_MESSAGE =
+ "map has been modified while iterating";
+
+ /** Message for exhausted iterator. */
+ private static final String EXHAUSTED_ITERATOR_MESSAGE =
+ "iterator exhausted";
+
/** Load factor for the map. */
private static final float LOAD_FACTOR = 0.5f;
@@ -526,10 +534,11 @@ public class OpenIntToDoubleHashMap implements Serializable {
public int key()
throws ConcurrentModificationException, NoSuchElementException {
if (referenceCount != count) {
- throw MathRuntimeException.createConcurrentModificationException("map has been modified while iterating");
+ throw MathRuntimeException.createConcurrentModificationException(
+ CONCURRENT_MODIFICATION_MESSAGE);
}
if (current < 0) {
- throw MathRuntimeException.createNoSuchElementException("iterator exhausted");
+ throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
}
return keys[current];
}
@@ -543,10 +552,11 @@ public class OpenIntToDoubleHashMap implements Serializable {
public double value()
throws ConcurrentModificationException, NoSuchElementException {
if (referenceCount != count) {
- throw MathRuntimeException.createConcurrentModificationException("map has been modified while iterating");
+ throw MathRuntimeException.createConcurrentModificationException(
+ CONCURRENT_MODIFICATION_MESSAGE);
}
if (current < 0) {
- throw MathRuntimeException.createNoSuchElementException("iterator exhausted");
+ throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
}
return values[current];
}
@@ -560,7 +570,8 @@ public class OpenIntToDoubleHashMap implements Serializable {
throws ConcurrentModificationException, NoSuchElementException {
if (referenceCount != count) {
- throw MathRuntimeException.createConcurrentModificationException("map has been modified while iterating");
+ throw MathRuntimeException.createConcurrentModificationException(
+ CONCURRENT_MODIFICATION_MESSAGE);
}
// advance on step
@@ -574,7 +585,7 @@ public class OpenIntToDoubleHashMap implements Serializable {
} catch (ArrayIndexOutOfBoundsException e) {
next = -2;
if (current < 0) {
- throw MathRuntimeException.createNoSuchElementException("iterator exhausted");
+ throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
}
}
diff --git a/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java b/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java
index 26770ee6d..4a20e6944 100644
--- a/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java
+++ b/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java
@@ -53,6 +53,14 @@ public class OpenIntToFieldHashMap> implements Seriali
/** Serializable version identifier. */
private static final long serialVersionUID = -9179080286849120720L;
+ /** Message for map modification during iteration. */
+ private static final String CONCURRENT_MODIFICATION_MESSAGE =
+ "map has been modified while iterating";
+
+ /** Message for exhausted iterator. */
+ private static final String EXHAUSTED_ITERATOR_MESSAGE =
+ "iterator exhausted";
+
/** Load factor for the map. */
private static final float LOAD_FACTOR = 0.5f;
@@ -538,10 +546,11 @@ public class OpenIntToFieldHashMap> implements Seriali
public int key()
throws ConcurrentModificationException, NoSuchElementException {
if (referenceCount != count) {
- throw MathRuntimeException.createConcurrentModificationException("map has been modified while iterating");
+ throw MathRuntimeException.createConcurrentModificationException(
+ CONCURRENT_MODIFICATION_MESSAGE);
}
if (current < 0) {
- throw MathRuntimeException.createNoSuchElementException("iterator exhausted");
+ throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
}
return keys[current];
}
@@ -555,10 +564,11 @@ public class OpenIntToFieldHashMap> implements Seriali
public T value()
throws ConcurrentModificationException, NoSuchElementException {
if (referenceCount != count) {
- throw MathRuntimeException.createConcurrentModificationException("map has been modified while iterating");
+ throw MathRuntimeException.createConcurrentModificationException(
+ CONCURRENT_MODIFICATION_MESSAGE);
}
if (current < 0) {
- throw MathRuntimeException.createNoSuchElementException("iterator exhausted");
+ throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
}
return values[current];
}
@@ -572,7 +582,8 @@ public class OpenIntToFieldHashMap> implements Seriali
throws ConcurrentModificationException, NoSuchElementException {
if (referenceCount != count) {
- throw MathRuntimeException.createConcurrentModificationException("map has been modified while iterating");
+ throw MathRuntimeException.createConcurrentModificationException(
+ CONCURRENT_MODIFICATION_MESSAGE);
}
// advance on step
@@ -586,7 +597,7 @@ public class OpenIntToFieldHashMap> implements Seriali
} catch (ArrayIndexOutOfBoundsException e) {
next = -2;
if (current < 0) {
- throw MathRuntimeException.createNoSuchElementException("iterator exhausted");
+ throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
}
}