psteitz 2004/06/18 06:24:06 Modified: math/src/java/org/apache/commons/math/stat/univariate/rank Max.java Log: Made increment and evaluate methods consistent wrt NaN values, improved javadoc, formatting. Revision Changes Path 1.17 +15 -15 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/rank/Max.java Index: Max.java =================================================================== RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/rank/Max.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- Max.java 27 Apr 2004 16:42:33 -0000 1.16 +++ Max.java 18 Jun 2004 13:24:06 -0000 1.17 @@ -17,16 +17,17 @@ import java.io.Serializable; -import org - .apache - .commons - .math - .stat - .univariate - .AbstractStorelessUnivariateStatistic; +import org.apache.commons.math.stat.univariate.AbstractStorelessUnivariateStatistic; /** * Returns the maximum of the available values. + * <p> + * <ul> + * <li>The result is <code>NaN</code> iff all values are <code>NaN</code> + * (i.e. <code>NaN</code> values have no impact on the value of the statistic).</li> + * <li>If any of the values equals <code>Double.POSITIVE_INFINITY</code>, + * the result is <code>Double.POSITIVE_INFINITY.</code></li> + * </ul> * * @version $Revision$ $Date$ */ @@ -35,17 +36,19 @@ /** Serializable version identifier */ static final long serialVersionUID = -5593383832225844641L; - /** */ + /** Number of values that have been added */ private long n = 0; - /** */ + /** Current value of the statistic */ private double value = Double.NaN; /** * @see org.apache.commons.math.stat.univariate.StorelessUnivariateStatistic#increment(double) */ public void increment(final double d) { - value = Double.isNaN(value) ? d : Math.max(value, d); + if (d > value || Double.isNaN(value)) { + value = d; + } n++; } @@ -76,10 +79,7 @@ * * @see org.apache.commons.math.stat.univariate.UnivariateStatistic#evaluate(double[], int, int) */ - public double evaluate( - final double[] values, - final int begin, - final int length) { + public double evaluate(final double[] values, final int begin, final int length) { double max = Double.NaN; if (test(values, begin, length)) { max = values[begin];
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]