git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@962515 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gilles Sadowski 2010-07-09 13:15:28 +00:00
parent b5a23d01b6
commit e038fdb1cc
10 changed files with 136 additions and 90 deletions

View File

@ -19,7 +19,7 @@ package org.apache.commons.math.analysis.polynomials;
import java.io.Serializable;
import java.util.Arrays;
import org.apache.commons.math.MathRuntimeException;
import org.apache.commons.math.exception.NotStrictlyPositiveException;
import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction;
import org.apache.commons.math.analysis.UnivariateRealFunction;
import org.apache.commons.math.util.LocalizedFormats;
@ -58,12 +58,13 @@ public class PolynomialFunction implements DifferentiableUnivariateRealFunction,
*
* @param c polynomial coefficients
* @throws NullPointerException if c is null
* @throws IllegalArgumentException if c is empty
* @throws NotStrictlyPositiveException if c is empty
*/
public PolynomialFunction(double c[]) {
super();
if (c.length < 1) {
throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY);
throw new NotStrictlyPositiveException(LocalizedFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY,
c.length);
}
int l = c.length;
while ((l > 1) && (c[l - 1] == 0)) {
@ -117,13 +118,14 @@ public class PolynomialFunction implements DifferentiableUnivariateRealFunction,
* @param coefficients the coefficients of the polynomial to evaluate
* @param argument the input value
* @return the value of the polynomial
* @throws IllegalArgumentException if coefficients is empty
* @throws NotStrictlyPositiveException if coefficients is empty
* @throws NullPointerException if coefficients is null
*/
protected static double evaluate(double[] coefficients, double argument) {
int n = coefficients.length;
if (n < 1) {
throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY);
throw new NotStrictlyPositiveException(LocalizedFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY,
n);
}
double result = coefficients[n - 1];
for (int j = n -2; j >=0; j--) {
@ -226,13 +228,14 @@ public class PolynomialFunction implements DifferentiableUnivariateRealFunction,
*
* @param coefficients the coefficients of the polynomial to differentiate
* @return the coefficients of the derivative or null if coefficients has length 1.
* @throws IllegalArgumentException if coefficients is empty
* @throws NotStrictlyPositiveException if coefficients is empty
* @throws NullPointerException if coefficients is null
*/
protected static double[] differentiate(double[] coefficients) {
int n = coefficients.length;
if (n < 1) {
throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY);
throw new NotStrictlyPositiveException(LocalizedFormats.EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY,
n);
}
if (n == 1) {
return new double[]{0};

View File

@ -16,7 +16,7 @@
*/
package org.apache.commons.math.exception;
import org.apache.commons.math.util.LocalizedFormats;
import org.apache.commons.math.util.Localizable;
/**
* Exception to be thrown when the argument is negative.
@ -33,4 +33,14 @@ public class NotPositiveException extends NumberIsTooSmallException {
public NotPositiveException(Number value) {
super(value, 0, true);
}
/**
* Construct the exception with a specific context.
*
* @param specific Specific context where the error occurred.
* @param value Argument.
*/
public NotPositiveException(Localizable specific,
Number value) {
super(specific, value, 0, true);
}
}

View File

@ -16,7 +16,7 @@
*/
package org.apache.commons.math.exception;
import org.apache.commons.math.util.LocalizedFormats;
import org.apache.commons.math.util.Localizable;
/**
* Exception to be thrown when the argument is negative.
@ -33,4 +33,14 @@ public class NotStrictlyPositiveException extends NumberIsTooSmallException {
public NotStrictlyPositiveException(Number value) {
super(value, 0, false);
}
/**
* Construct the exception with a specific context.
*
* @param specific Specific context where the error occurred.
* @param value Argument.
*/
public NotStrictlyPositiveException(Localizable specific,
Number value) {
super(specific, value, 0, false);
}
}

View File

@ -16,6 +16,7 @@
*/
package org.apache.commons.math.exception;
import org.apache.commons.math.util.Localizable;
import org.apache.commons.math.util.LocalizedFormats;
/**
@ -43,7 +44,21 @@ public class NumberIsTooLargeException extends MathIllegalNumberException {
public NumberIsTooLargeException(Number wrong,
Number max,
boolean boundIsAllowed) {
super((boundIsAllowed ?
this(null, wrong, max, boundIsAllowed);
}
/**
* Construct the exception with a specific context.
*
* @param specific Specific contexte pattern .
* @param wrong Value that is larger than the maximum.
* @param max maximum.
*/
public NumberIsTooLargeException(Localizable specific,
Number wrong,
Number max,
boolean boundIsAllowed) {
super(specific,
(boundIsAllowed ?
LocalizedFormats.NUMBER_TOO_LARGE :
LocalizedFormats.NUMBER_TOO_LARGE_BOUND_EXCLUDED),
wrong, max);

View File

@ -16,15 +16,14 @@
*/
package org.apache.commons.math.random;
import org.apache.commons.math.MathRuntimeException;
import org.apache.commons.math.util.LocalizedFormats;
import org.apache.commons.math.exception.NotStrictlyPositiveException;
/**
* Abstract class implementing the {@link RandomGenerator} interface.
* Default implementations for all methods other than {@link #nextDouble()} and
* {@link #setSeed(long)} are provided.
* <p>
* All data generation methods are based on <code>nextDouble().</code>
* All data generation methods are based on {@code code nextDouble()}.
* Concrete implementations <strong>must</strong> override
* this method and <strong>should</strong> provide better / more
* performant implementations of the other methods if the underlying PRNG
@ -39,7 +38,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
* Cached random normal value. The default implementation for
* {@link #nextGaussian} generates pairs of values and this field caches the
* second value so that the full algorithm is not executed for every
* activation. The value <code>Double.NaN</code> signals that there is
* activation. The value {@code Double.NaN} signals that there is
* no cached value. Use {@link #clear} to clear the cached value.
*/
private double cachedNormalDeviate = Double.NaN;
@ -55,7 +54,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
/**
* Clears the cache used by the default implementation of
* {@link #nextGaussian}. Implemementations that do not override the
* default implementation of <code>nextGaussian</code> should call this
* default implementation of {@code nextGaussian} should call this
* method in the implementation of {@link #setSeed(long)}
*/
public void clear() {
@ -81,11 +80,11 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
/**
* Sets the seed of the underyling random number generator using a
* <code>long</code> seed. Sequences of values generated starting with the
* {@code long} seed. Sequences of values generated starting with the
* same seeds should be identical.
* <p>
* Implementations that do not override the default implementation of
* <code>nextGaussian</code> should include a call to {@link #clear} in the
* {@code nextGaussian} should include a call to {@link #clear} in the
* implementation of this method.</p>
*
* @param seed the seed value
@ -120,9 +119,9 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
}
/**
* Returns the next pseudorandom, uniformly distributed <code>int</code>
* Returns the next pseudorandom, uniformly distributed {@code int}
* value from this random number generator's sequence.
* All 2<font size="-1"><sup>32</sup></font> possible <tt>int</tt> values
* All 2<font size="-1"><sup>32</sup></font> possible {@code int} values
* should be produced with (approximately) equal probability.
* <p>
* The default implementation provided here returns
@ -130,7 +129,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
* <code>(int) (nextDouble() * Integer.MAX_VALUE)</code>
* </pre></p>
*
* @return the next pseudorandom, uniformly distributed <code>int</code>
* @return the next pseudorandom, uniformly distributed {@code int}
* value from this random number generator's sequence
*/
public int nextInt() {
@ -138,7 +137,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
}
/**
* Returns a pseudorandom, uniformly distributed <tt>int</tt> value
* Returns a pseudorandom, uniformly distributed {@code int} value
* between 0 (inclusive) and the specified value (exclusive), drawn from
* this random number generator's sequence.
* <p>
@ -149,23 +148,22 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
*
* @param n the bound on the random number to be returned. Must be
* positive.
* @return a pseudorandom, uniformly distributed <tt>int</tt>
* @return a pseudorandom, uniformly distributed {@code int}
* value between 0 (inclusive) and n (exclusive).
* @throws IllegalArgumentException if n is not positive.
* @throws NotStrictlyPositiveException if {@code n <= 0}.
*/
public int nextInt(int n) {
if (n <= 0 ) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_UPPER_BOUND, n);
throw new NotStrictlyPositiveException(n);
}
int result = (int) (nextDouble() * n);
return result < n ? result : n - 1;
}
/**
* Returns the next pseudorandom, uniformly distributed <code>long</code>
* Returns the next pseudorandom, uniformly distributed {@code long}
* value from this random number generator's sequence. All
* 2<font size="-1"><sup>64</sup></font> possible <tt>long</tt> values
* 2<font size="-1"><sup>64</sup></font> possible {@code long} values
* should be produced with (approximately) equal probability.
* <p>
* The default implementation returns
@ -173,7 +171,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
* <code>(long) (nextDouble() * Long.MAX_VALUE)</code>
* </pre></p>
*
* @return the next pseudorandom, uniformly distributed <code>long</code>
* @return the next pseudorandom, uniformly distributed {@code long}
*value from this random number generator's sequence
*/
public long nextLong() {
@ -182,7 +180,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
/**
* Returns the next pseudorandom, uniformly distributed
* <code>boolean</code> value from this random number generator's
* {@code boolean} value from this random number generator's
* sequence.
* <p>
* The default implementation returns
@ -191,7 +189,7 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
* </pre></p>
*
* @return the next pseudorandom, uniformly distributed
* <code>boolean</code> value from this random number generator's
* {@code boolean} value from this random number generator's
* sequence
*/
public boolean nextBoolean() {
@ -199,8 +197,8 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
}
/**
* Returns the next pseudorandom, uniformly distributed <code>float</code>
* value between <code>0.0</code> and <code>1.0</code> from this random
* Returns the next pseudorandom, uniformly distributed {@code float}
* value between {@code 0.0} and {@code 1.0} from this random
* number generator's sequence.
* <p>
* The default implementation returns
@ -208,8 +206,8 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
* <code>(float) nextDouble() </code>
* </pre></p>
*
* @return the next pseudorandom, uniformly distributed <code>float</code>
* value between <code>0.0</code> and <code>1.0</code> from this
* @return the next pseudorandom, uniformly distributed {@code float}
* value between {@code 0.0} and {@code 1.0} from this
* random number generator's sequence
*/
public float nextFloat() {
@ -218,22 +216,22 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
/**
* Returns the next pseudorandom, uniformly distributed
* <code>double</code> value between <code>0.0</code> and
* <code>1.0</code> from this random number generator's sequence.
* {@code double} value between {@code 0.0} and
* {@code 1.0} from this random number generator's sequence.
* <p>
* This method provides the underlying source of random data used by the
* other methods.</p>
*
* @return the next pseudorandom, uniformly distributed
* <code>double</code> value between <code>0.0</code> and
* <code>1.0</code> from this random number generator's sequence
* {@code double} value between {@code 0.0} and
* {@code 1.0} from this random number generator's sequence
*/
public abstract double nextDouble();
/**
* Returns the next pseudorandom, Gaussian ("normally") distributed
* <code>double</code> value with mean <code>0.0</code> and standard
* deviation <code>1.0</code> from this random number generator's sequence.
* {@code double} value with mean {@code 0.0} and standard
* deviation {@code 1.0} from this random number generator's sequence.
* <p>
* The default implementation uses the <em>Polar Method</em>
* due to G.E.P. Box, M.E. Muller and G. Marsaglia, as described in
@ -246,8 +244,8 @@ public abstract class AbstractRandomGenerator implements RandomGenerator {
* implementation of {@link #setSeed(long)}.</p>
*
* @return the next pseudorandom, Gaussian ("normally") distributed
* <code>double</code> value with mean <code>0.0</code> and
* standard deviation <code>1.0</code> from this random number
* {@code double} value with mean {@code 0.0} and
* standard deviation {@code 1.0} from this random number
* generator's sequence
*/
public double nextGaussian() {

View File

@ -16,8 +16,7 @@
*/
package org.apache.commons.math.random;
import org.apache.commons.math.MathRuntimeException;
import org.apache.commons.math.util.LocalizedFormats;
import org.apache.commons.math.exception.NotStrictlyPositiveException;
/** Base class for random number generators that generates bits streams.
@ -123,8 +122,7 @@ public abstract class BitsStreamGenerator implements RandomGenerator {
public int nextInt(int n) throws IllegalArgumentException {
if (n < 1) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_UPPER_BOUND, n);
throw new NotStrictlyPositiveException(n);
}
// find bit mask for n

View File

@ -26,6 +26,8 @@ import java.util.Collection;
import org.apache.commons.math.MathException;
import org.apache.commons.math.MathRuntimeException;
import org.apache.commons.math.exception.NotStrictlyPositiveException;
import org.apache.commons.math.exception.NumberIsTooLargeException;
import org.apache.commons.math.distribution.BetaDistributionImpl;
import org.apache.commons.math.distribution.BinomialDistributionImpl;
import org.apache.commons.math.distribution.CauchyDistributionImpl;
@ -145,11 +147,11 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param len
* the desired string length.
* @return the random string.
* @throws NotStrictlyPositiveException if {@code len <= 0}.
*/
public String nextHexString(int len) {
if (len <= 0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_LENGTH, len);
throw new NotStrictlyPositiveException(LocalizedFormats.LENGTH, len);
}
// Get a random number generator
@ -191,12 +193,12 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param upper
* the upper bound.
* @return the random integer.
* @throws NumberIsTooLargeException if {@code lower >= upper}.
*/
public int nextInt(int lower, int upper) {
if (lower >= upper) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
upper, lower);
throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
lower, upper, false);
}
double r = getRan().nextDouble();
return (int) ((r * upper) + ((1.0 - r) * lower) + r);
@ -211,12 +213,12 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param upper
* the upper bound.
* @return the random integer.
* @throws NumberIsTooLargeException if {@code lower >= upper}.
*/
public long nextLong(long lower, long upper) {
if (lower >= upper) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
upper, lower);
throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
lower, upper, false);
}
double r = getRan().nextDouble();
return (long) ((r * upper) + ((1.0 - r) * lower) + r);
@ -241,11 +243,11 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param len
* the length of the generated string
* @return the random string
* @throws NotStrictlyPositiveException if {@code len <= 0}.
*/
public String nextSecureHexString(int len) {
if (len <= 0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_LENGTH, len);
throw new NotStrictlyPositiveException(LocalizedFormats.LENGTH, len);
}
// Get SecureRandom and setup Digest provider
@ -302,12 +304,12 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param upper
* the upper bound.
* @return the random integer.
* @throws NumberIsTooLargeException if {@code lower >= upper}.
*/
public int nextSecureInt(int lower, int upper) {
if (lower >= upper) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
upper, lower);
throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
lower, upper, false);
}
SecureRandom sec = getSecRan();
return lower + (int) (sec.nextDouble() * (upper - lower + 1));
@ -323,12 +325,12 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param upper
* the upper bound.
* @return the random integer.
* @throws NumberIsTooLargeException if {@code lower >= upper}.
*/
public long nextSecureLong(long lower, long upper) {
if (lower >= upper) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
upper, lower);
throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
lower, upper, false);
}
SecureRandom sec = getSecRan();
return lower + (long) (sec.nextDouble() * (upper - lower + 1));
@ -349,11 +351,11 @@ public class RandomDataImpl implements RandomData, Serializable {
*
* @param mean mean of the Poisson distribution.
* @return the random Poisson value.
* @throws NotStrictlyPositiveException if {@code mean <= 0}.
*/
public long nextPoisson(double mean) {
if (mean <= 0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_POISSON_MEAN, mean);
throw new NotStrictlyPositiveException(LocalizedFormats.MEAN, mean);
}
final RandomGenerator generator = getRan();
@ -453,11 +455,11 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param sigma
* the standard deviation of the distribution
* @return the random Normal value
* @throws NotStrictlyPositiveException if {@code sigma <= 0}.
*/
public double nextGaussian(double mu, double sigma) {
if (sigma <= 0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_STANDARD_DEVIATION, sigma);
throw new NotStrictlyPositiveException(LocalizedFormats.STANDARD_DEVIATION, sigma);
}
return sigma * getRan().nextGaussian() + mu;
}
@ -474,11 +476,11 @@ public class RandomDataImpl implements RandomData, Serializable {
*
* @param mean the mean of the distribution
* @return the random Exponential value
* @throws NotStrictlyPositiveException if {@code mean <= 0}.
*/
public double nextExponential(double mean) {
if (mean <= 0.0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_MEAN, mean);
throw new NotStrictlyPositiveException(LocalizedFormats.MEAN, mean);
}
final RandomGenerator generator = getRan();
double unif = generator.nextDouble();
@ -503,12 +505,12 @@ public class RandomDataImpl implements RandomData, Serializable {
* the upper bound.
* @return a uniformly distributed random value from the interval (lower,
* upper)
* @throws NumberIsTooLargeException if {@code lower >= upper}.
*/
public double nextUniform(double lower, double upper) {
if (lower >= upper) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
upper, lower);
throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
lower, upper, false);
}
final RandomGenerator generator = getRan();
@ -827,15 +829,17 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param k
* size of the permutation (must satisfy 0 < k <= n).
* @return the random permutation as an int array
* @throws NumberIsTooLargException if {@code k > n}.
* @throws NotStrictlyPositiveException if {@code k <= 0}.
*/
public int[] nextPermutation(int n, int k) {
if (k > n) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.PERMUTATION_EXCEEDS_N, k, n);
throw new NumberIsTooLargeException(LocalizedFormats.PERMUTATION_EXCEEDS_N,
k, n, true);
}
if (k == 0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_PERMUTATION, k);
throw new NotStrictlyPositiveException(LocalizedFormats.PERMUTATION_SIZE,
k);
}
int[] index = getNatural(n);
@ -863,16 +867,17 @@ public class RandomDataImpl implements RandomData, Serializable {
* @param k
* sample size.
* @return the random sample.
* @throws NumberIsTooLargeException if {@code k > c.size()}.
* @throws NotStrictlyPositiveException if {@code k <= 0}.
*/
public Object[] nextSample(Collection<?> c, int k) {
int len = c.size();
if (k > len) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.SAMPLE_SIZE_EXCEEDS_COLLECTION_SIZE);
throw new NumberIsTooLargeException(LocalizedFormats.SAMPLE_SIZE_EXCEEDS_COLLECTION_SIZE,
k, len, true);
}
if (k <= 0) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.NOT_POSITIVE_SAMPLE_SIZE, k);
throw new NotStrictlyPositiveException(LocalizedFormats.NUMBER_OF_SAMPLES, k);
}
Object[] objects = c.toArray();

View File

@ -19,8 +19,7 @@ package org.apache.commons.math.random;
import java.util.Arrays;
import org.apache.commons.math.MathRuntimeException;
import org.apache.commons.math.util.LocalizedFormats;
import org.apache.commons.math.exception.DimensionMismatchException;
/**
* A {@link RandomVectorGenerator} that generates vectors with uncorrelated
@ -55,9 +54,7 @@ public class UncorrelatedRandomVectorGenerator
double[] standardDeviation,
NormalizedRandomGenerator generator) {
if (mean.length != standardDeviation.length) {
throw MathRuntimeException.createIllegalArgumentException(
LocalizedFormats.DIMENSIONS_MISMATCH_SIMPLE,
mean.length, standardDeviation.length);
throw new DimensionMismatchException(mean.length, standardDeviation.length);
}
this.mean = mean.clone();
this.standardDeviation = standardDeviation.clone();

View File

@ -84,7 +84,7 @@ public enum LocalizedFormats implements Localizable {
DISCRETE_CUMULATIVE_PROBABILITY_RETURNED_NAN("Discrete cumulative probability function returned NaN for argument {0}"),
DISTRIBUTION_NOT_LOADED("distribution not loaded"),
DUPLICATED_ABSCISSA("Abscissa {0} is duplicated at both indices {1} and {2}"),
EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY("empty polynomials coefficients array"),
EMPTY_POLYNOMIALS_COEFFICIENTS_ARRAY("empty polynomials coefficients array"), /* keep */
EMPTY_SELECTED_COLUMN_INDEX_ARRAY("empty selected column index array"),
EMPTY_SELECTED_ROW_INDEX_ARRAY("empty selected row index array"),
EMPTY_STRING_FOR_IMAGINARY_CHARACTER("empty string for imaginary character"),
@ -131,7 +131,7 @@ public enum LocalizedFormats implements Localizable {
LCM_OVERFLOW_32_BITS("overflow: lcm({0}, {1}) is 2^31"),
LCM_OVERFLOW_64_BITS("overflow: lcm({0}, {1}) is 2^63"),
LOESS_EXPECTS_AT_LEAST_ONE_POINT("Loess expects at least 1 point"),
LOWER_BOUND_NOT_BELOW_UPPER_BOUND("upper bound ({0}) must be greater than lower bound ({1})"),
LOWER_BOUND_NOT_BELOW_UPPER_BOUND("lower bound ({0}) must be strictly less than upper bound ({1})"), /* keep */
LOWER_ENDPOINT_ABOVE_UPPER_ENDPOINT("lower endpoint ({0}) must be less than or equal to upper endpoint ({1})"),
MAP_MODIFIED_WHILE_ITERATING("map has been modified while iterating"),
MAX_EVALUATIONS_EXCEEDED("maximal number of evaluations ({0}) exceeded"),
@ -174,9 +174,13 @@ public enum LocalizedFormats implements Localizable {
NOT_POSITIVE_ELEMENT_AT_INDEX("element {0} is not positive: {1}"),
NOT_POSITIVE_EXPONENT("invalid exponent {0} (must be positive)"),
NOT_POSITIVE_LENGTH("length must be positive ({0})"),
LENGTH("length ({0})"), /* keep */
NOT_POSITIVE_MEAN("mean must be positive ({0})"),
MEAN("mean ({0})"), /* keep */
NOT_POSITIVE_NUMBER_OF_SAMPLES("number of sample is not positive: {0}"),
NUMBER_OF_SAMPLES("number of samples ({0})"), /* keep */
NOT_POSITIVE_PERMUTATION("permutation k ({0}) must be positive"),
PERMUTATION_SIZE("permutation size ({0}"), /* keep */
NOT_POSITIVE_POISSON_MEAN("the Poisson mean must be positive ({0})"),
NOT_POSITIVE_POPULATION_SIZE("population size must be positive ({0})"),
NOT_POSITIVE_ROW_DIMENSION("invalid row dimension: {0} (must be positive)"),
@ -184,6 +188,7 @@ public enum LocalizedFormats implements Localizable {
NOT_POSITIVE_SCALE("scale must be positive ({0})"),
NOT_POSITIVE_SHAPE("shape must be positive ({0})"),
NOT_POSITIVE_STANDARD_DEVIATION("standard deviation must be positive ({0})"),
STANDARD_DEVIATION("standard deviation ({0})"), /* keep */
NOT_POSITIVE_UPPER_BOUND("upper bound must be positive ({0})"),
NOT_POSITIVE_WINDOW_SIZE("window size must be positive ({0})"),
NOT_POWER_OF_TWO("{0} is not a power of 2"),
@ -234,7 +239,7 @@ public enum LocalizedFormats implements Localizable {
OVERFLOW_IN_FRACTION("overflow in fraction {0}/{1}, cannot negate"),
PERCENTILE_IMPLEMENTATION_CANNOT_ACCESS_METHOD("cannot access {0} method in percentile implementation {1}"),
PERCENTILE_IMPLEMENTATION_UNSUPPORTED_METHOD("percentile implementation {0} does not support {1}"),
PERMUTATION_EXCEEDS_N("permutation k ({0}) exceeds n ({1})"),
PERMUTATION_EXCEEDS_N("permutation size ({0}) exceeds permuation domain ({1})"), /* keep */
POLYNOMIAL_INTERPOLANTS_MISMATCH_SEGMENTS("number of polynomial interpolants must match the number of segments ({0} != {1} - 1)"),
POSITION_SIZE_MISMATCH_INPUT_ARRAY("position {0} and size {1} don't fit to the size of the input array {2}"),
POWER_NEGATIVE_PARAMETERS("cannot raise an integral value to a negative power ({0}^{1})"),
@ -244,7 +249,7 @@ public enum LocalizedFormats implements Localizable {
ROTATION_MATRIX_DIMENSIONS("a {0}x{1} matrix cannot be a rotation matrix"),
ROW_INDEX_OUT_OF_RANGE("row index {0} out of allowed range [{1}, {2}]"),
SAME_SIGN_AT_ENDPOINTS("function values at endpoints do not have different signs, endpoints: [{0}, {1}], values: [{2}, {3}]"),
SAMPLE_SIZE_EXCEEDS_COLLECTION_SIZE("sample size ({0}) exceeds collection size ({1})"),
SAMPLE_SIZE_EXCEEDS_COLLECTION_SIZE("sample size ({0}) exceeds collection size ({1})"), /* keep */
SAMPLE_SIZE_LARGER_THAN_POPULATION_SIZE("sample size ({0}) must be less than or equal to population size ({1})"),
SIMPLEX_NEED_ONE_POINT("simplex must contain at least one point"),
SIMPLE_MESSAGE("{0}"),

View File

@ -103,7 +103,7 @@ ITERATOR_EXHAUSTED = it\u00e9ration achev\u00e9e
LCM_OVERFLOW_32_BITS = d\u00e9passement de capacit\u00e9 : le MCM de {0} et {1} vaut 2^31
LCM_OVERFLOW_64_BITS = d\u00e9passement de capacit\u00e9 : le MCM de {0} et {1} vaut 2^63
LOESS_EXPECTS_AT_LEAST_ONE_POINT = la r\u00e9gression Loess n\u00e9cessite au moins un point
LOWER_BOUND_NOT_BELOW_UPPER_BOUND = la borne sup\u00e9rieure ({0}) doit \u00eatre sup\u00e9rieure
LOWER_BOUND_NOT_BELOW_UPPER_BOUND = la borne inf\u00e9rieure ({0}) doit \u00eatre strictement plus petite que la borne sup\u00e9rieure ({1})
LOWER_ENDPOINT_ABOVE_UPPER_ENDPOINT = la borne inf\u00e9rieure ({0}) devrait \u00eatre inf\u00e9rieure
MAP_MODIFIED_WHILE_ITERATING = la table d''adressage a \u00e9t\u00e9 modifi\u00e9e pendant l''it\u00e9ration
MAX_EVALUATIONS_EXCEEDED = nombre maximal d''\u00e9valuations ({0}) d\u00e9pass\u00e9
@ -146,9 +146,13 @@ NOT_POSITIVE_DEGREES_OF_FREEDOM = les degr\u00e9s de libert\u00e9 doivent \u00ea
NOT_POSITIVE_ELEMENT_AT_INDEX = l''\u00e9l\u00e9ment {0} n''est pas positif : {1}
NOT_POSITIVE_EXPONENT = exposant {0} invalide (doit \u00eatre positif)
NOT_POSITIVE_LENGTH = la longueur doit \u00eatre positive ({0})
LENGTH = longueur ({0})
NOT_POSITIVE_MEAN = la moyenne doit \u00eatre positive ({0})
MEAN = moyenne ({0})
NOT_POSITIVE_NUMBER_OF_SAMPLES = le nombre d''\u00e9chantillons n''est pas positif : {0}
NUMBER_OF_SAMPLES = nombre d''\u00e9chantillons ({0})
NOT_POSITIVE_PERMUTATION = la permutation k ({0}) doit \u00eatre positive
PERMUTATION_SIZE = taille de la permutation
NOT_POSITIVE_POISSON_MEAN = la moyenne de Poisson doit \u00eatre positive ({0})
NOT_POSITIVE_POPULATION_SIZE = la taille de la population doit \u00eatre positive ({0})
NOT_POSITIVE_ROW_DIMENSION = nombre de lignes invalide : {0} (doit \u00eatre positif)
@ -156,6 +160,7 @@ NOT_POSITIVE_SAMPLE_SIZE = la taille de l''\u00e9chantillon doit \u00eatre posit
NOT_POSITIVE_SCALE = l''\u00e9chelle doit \u00eatre positive ({0})
NOT_POSITIVE_SHAPE = le facteur de forme doit \u00eatre positif ({0})
NOT_POSITIVE_STANDARD_DEVIATION = l''\u00e9cart type doit \u00eatre positif ({0})
STANDARD_DEVIATION = \u00e9cart type
NOT_POSITIVE_UPPER_BOUND = la borne sup\u00e9rieure doit \u00eatre positive ({0})
NOT_POSITIVE_WINDOW_SIZE = la taille de la fen\u00eatre doit \u00eatre positive ({0})
NOT_POWER_OF_TWO = {0} n''est pas une puissance de 2
@ -206,7 +211,7 @@ OUT_OF_RANGE_SIMPLE = {0} hors du domaine [{1}, {2}]
OVERFLOW_IN_FRACTION = d\u00e9passement de capacit\u00e9 pour la fraction {0}/{1}, son signe ne peut \u00eatre chang\u00e9
PERCENTILE_IMPLEMENTATION_CANNOT_ACCESS_METHOD = acc\u00e8s impossible \u00e0 la m\u00e9thode {0}
PERCENTILE_IMPLEMENTATION_UNSUPPORTED_METHOD = l''implantation de pourcentage {0} ne dispose pas de la m\u00e9thode {1}
PERMUTATION_EXCEEDS_N = la permutation k ({0}) d\u00e9passe n ({1})
PERMUTATION_EXCEEDS_N = la taille de la permutation ({0}) d\u00e9passe le domaine de la permutation ({1})
POLYNOMIAL_INTERPOLANTS_MISMATCH_SEGMENTS = le nombre d''interpolants polyn\u00f4miaux doit correspondre au nombre de segments ({0} != {1} - 1)
POSITION_SIZE_MISMATCH_INPUT_ARRAY = la position {0} et la taille {1} sont incompatibles avec la taille du tableau d''entr\u00e9e {2}
POWER_NEGATIVE_PARAMETERS = impossible d''\u00e9lever une valeur enti\u00e8re