mdiggory 2003/07/14 20:37:11 Modified: math/src/java/org/apache/commons/math/stat/univariate UnivariateStatistic.java StorelessUnivariateStatistic.java AbstractUnivariateStatistic.java AbstractStorelessUnivariateStatistic.java math/src/java/org/apache/commons/math/stat/univariate/summary Sum.java Added: math/src/java/org/apache/commons/math/stat/univariate package.html Log: minor javadoc cleanup Revision Changes Path 1.5 +8 -5 jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/UnivariateStatistic.java Index: UnivariateStatistic.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/UnivariateStatistic.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- UnivariateStatistic.java 9 Jul 2003 20:04:13 -0000 1.4 +++ UnivariateStatistic.java 15 Jul 2003 03:37:10 -0000 1.5 @@ -55,7 +55,9 @@ /** * UnivariateStatistic interface provides methods to evaluate - * double[] based content using a particular algorithm. + * double[] based content using an implemented statistical approach. + * The interface provides two "stateless" simple methods to calculate + * a statistic from a double[] based parameter. * @version $Revision$ $Date$ */ public interface UnivariateStatistic { @@ -66,16 +68,17 @@ * @return the result of the evaluation or Double.NaN * if the array is empty */ - public double evaluate(double[] values); + double evaluate(double[] values); /** - * Evaluates part of a double[] returning the result of the evaluation. + * Evaluates part of a double[] returning the result + * of the evaluation. * @param values Is a double[] containing the values * @param begin processing at this point in the array * @param length processing at this point in the array * @return the result of the evaluation or Double.NaN * if the array is empty */ - public double evaluate(double[] values, int begin, int length); + double evaluate(double[] values, int begin, int length); } 1.6 +12 -10 jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/StorelessUnivariateStatistic.java Index: StorelessUnivariateStatistic.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/StorelessUnivariateStatistic.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- StorelessUnivariateStatistic.java 9 Jul 2003 20:04:13 -0000 1.5 +++ StorelessUnivariateStatistic.java 15 Jul 2003 03:37:10 -0000 1.6 @@ -54,12 +54,14 @@ package org.apache.commons.math.stat.univariate; /** - * StorelessUnivariate interface provides methods to increment and access - * the internal state of the Statistic. A StorelessUnivariateStatistic does - * not require that a double[] storage structure be maintained with the values - * in it. As such only a subset of known statistics can actually be implmented - * using it. If a Statistic cannot be implemented in a Storeless approach it - * should implement the UnivariateStatistic interface directly instead. + * Extends the capabilities of UnivariateStatistic with a statefull incremental + * strategy through three methods for calculating a statistic without having to + * maintain a double[] of the values. Because a StorelessUnivariateStatistic + * does not require that a double[] storage structure be maintained with the + * values in it, there are only a subset of known statistics can actually be + * implemented using it. If a Statistic cannot be implemented in a Storeless + * approach it should implement the UnivariateStatistic interface directly + * instead. * @version $Revision$ $Date$ */ public interface StorelessUnivariateStatistic extends UnivariateStatistic { @@ -69,7 +71,7 @@ * Implementation. * @param d is the value to increment the state by. */ - public void increment(double d); + void increment(double d); /** * Returns the current state of the statistic after the @@ -77,12 +79,12 @@ * @return value of the statistic, Double.NaN if it * has been cleared or just instantiated. */ - public double getResult(); + double getResult(); /** * Clears all the internal state of the Statistic */ - public void clear(); + void clear(); } 1.5 +13 -7 jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/AbstractUnivariateStatistic.java Index: AbstractUnivariateStatistic.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/AbstractUnivariateStatistic.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AbstractUnivariateStatistic.java 9 Jul 2003 20:04:13 -0000 1.4 +++ AbstractUnivariateStatistic.java 15 Jul 2003 03:37:10 -0000 1.5 @@ -66,7 +66,8 @@ * This implementation provides a simple wrapper around the double[] * and passes the request onto the evaluate(DoubleArray da) method. * - * @see org.apache.commons.math.stat.univariate.UnivariateStatistic#evaluate(double[]) + * @see org.apache.commons.math.stat.univariate. + * UnivariateStatistic#evaluate(double[]) */ public double evaluate(double[] values) { return evaluate(values, 0, values.length); @@ -74,7 +75,8 @@ /** * Subclasses of AbstractUnivariateStatistc need to implement this method. - * @see org.apache.commons.math.stat.univariate.UnivariateStatistic#evaluate(double[], int, int) + * @see org.apache.commons.math.stat.univariate. + * UnivariateStatistic#evaluate(double[], int, int) */ public abstract double evaluate(double[] values, int begin, int length); @@ -87,17 +89,21 @@ */ protected boolean test(double[] values, int begin, int length) { - if (length > values.length) + if (length > values.length) { throw new IllegalArgumentException("length > values.length"); + } - if (begin + length > values.length) + if (begin + length > values.length) { throw new IllegalArgumentException("begin + length > values.length"); + } - if (values == null) + if (values == null) { throw new IllegalArgumentException("input value array is null"); + } - if (values.length == 0 || length == 0) + if (values.length == 0 || length == 0) { return false; + } return true; 1.5 +5 -2 jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/AbstractStorelessUnivariateStatistic.java Index: AbstractStorelessUnivariateStatistic.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/AbstractStorelessUnivariateStatistic.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AbstractStorelessUnivariateStatistic.java 9 Jul 2003 20:04:13 -0000 1.4 +++ AbstractStorelessUnivariateStatistic.java 15 Jul 2003 03:37:10 -0000 1.5 @@ -70,15 +70,18 @@ * calculation off to the instantanious increment method. In most cases of * StorelessUnivariateStatistic this is never really used because more * efficient algorithms are available for that statistic. - * @see org.apache.commons.math.stat.univariate.UnivariateStatistic#evaluate(double[], int, int) + * @see org.apache.commons.math.stat.univariate. + * UnivariateStatistic#evaluate(double[], int, int) */ public double evaluate(double[] values, int begin, int length) { if (this.test(values, begin, length)) { this.clear(); + int l = begin + length; for (int i = begin; i < begin + length; i++) { increment(values[i]); } } return getResult(); } + } 1.1 jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/package.html Index: package.html =================================================================== <html> <body> <h3>UnivariateStatistic API Usage Examples:</h3> <h4>UnivariateStatistic:</h4> <code> /* evaluation approach */<br/> double[] values = new double[] { 1, 2, 3, 4, 5 };<br/> <span style="font-weight: bold;">UnivariateStatistic stat = new Mean();</span><br/> System.out.println("mean = " + <span style="font-weight: bold;">stat.evaluate(values)</span>);<br/> </code> <h4>StorelessUnivariateStatistic:</h4> <code> /* incremental approach */<br> double[] values = new double[] { 1, 2, 3, 4, 5 };<br/> <span style="font-weight: bold;">StorelessUnivariateStatistic stat = new Mean();</span><br/> System.out.println("mean before adding a value is NaN = " + <span style="font-weight: bold;">stat.getResult()</span>);<br/> for (int i = 0; i < values.length; i++) {<br/> <span style="font-weight: bold;">stat.increment(values[i]);</span><br> System.out.println("current mean = " + <span style="font-weight: bold;">stat2.getResult()</span>);<br/> }<br> <span style="font-weight: bold;"> stat.clear();</span><br/> System.out.println("mean after clear is NaN = " + <span style="font-weight: bold;">stat.getResult()</span>); </code> </body> </html> 1.7 +6 -7 jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/summary/Sum.java Index: Sum.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/summary/Sum.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Sum.java 9 Jul 2003 20:04:13 -0000 1.6 +++ Sum.java 15 Jul 2003 03:37:11 -0000 1.7 @@ -53,6 +53,7 @@ */ package org.apache.commons.math.stat.univariate.summary; +import org.apache.commons.collections.primitives.DoubleIterator; import org .apache .commons @@ -75,10 +76,10 @@ * @see org.apache.commons.math.stat.univariate.StorelessUnivariateStatistic#increment(double) */ public void increment(double d) { - if (Double.isNaN(value )) { - value = d; + if (Double.isNaN(value)) { + value = d; } else { - value += d; + value += d; } } @@ -88,7 +89,7 @@ public double getResult() { return value; } - + /** * @see org.apache.commons.math.stat.univariate.StorelessUnivariateStatistic#clear() */ @@ -114,7 +115,5 @@ } return sum; } - - }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]