You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by md...@apache.org on 2004/06/01 23:34:35 UTC
cvs commit: jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate DescriptiveStatisticsImpl.java AbstractUnivariateStatistic.java SummaryStatistics.java AbstractStorelessUnivariateStatistic.java DescriptiveStatistics.java SummaryStatisticsImpl.java AbstractDescriptiveStatistics.java
mdiggory 2004/06/01 14:34:35
Modified: math/src/java/org/apache/commons/math/stat/univariate
DescriptiveStatisticsImpl.java
AbstractUnivariateStatistic.java
SummaryStatistics.java
AbstractStorelessUnivariateStatistic.java
DescriptiveStatistics.java
SummaryStatisticsImpl.java
Removed: math/src/java/org/apache/commons/math/stat/univariate
AbstractDescriptiveStatistics.java
Log:
Consolidated AbstractDescriptiveStatistics into DescriptiveStatistics. Added Serialization interfaces where required.
Revision Changes Path
1.6 +5 -2 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/DescriptiveStatisticsImpl.java
Index: DescriptiveStatisticsImpl.java
===================================================================
RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/DescriptiveStatisticsImpl.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DescriptiveStatisticsImpl.java 23 May 2004 00:30:01 -0000 1.5
+++ DescriptiveStatisticsImpl.java 1 Jun 2004 21:34:35 -0000 1.6
@@ -25,8 +25,11 @@
*
* @version $Revision$ $Date$
*/
-public class DescriptiveStatisticsImpl extends AbstractDescriptiveStatistics implements Serializable {
+public class DescriptiveStatisticsImpl extends DescriptiveStatistics implements Serializable {
+ /** Serializable version identifier */
+ static final long serialVersionUID = -1868088725461221010L;
+
/** hold the window size **/
protected int windowSize;
1.17 +7 -2 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/AbstractUnivariateStatistic.java
Index: AbstractUnivariateStatistic.java
===================================================================
RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/AbstractUnivariateStatistic.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- AbstractUnivariateStatistic.java 27 Apr 2004 16:42:34 -0000 1.16
+++ AbstractUnivariateStatistic.java 1 Jun 2004 21:34:35 -0000 1.17
@@ -15,6 +15,8 @@
*/
package org.apache.commons.math.stat.univariate;
+import java.io.Serializable;
+
/**
* Abstract Implementation for UnivariateStatistics.
* Provides the ability to extend polymophically so that
@@ -22,7 +24,10 @@
* @version $Revision$ $Date$
*/
public abstract class AbstractUnivariateStatistic
- implements UnivariateStatistic {
+ implements UnivariateStatistic, Serializable {
+
+ /** Serialization UID */
+ static final long serialVersionUID = -8007759382851708045L;
/**
* @see org.apache.commons.math.stat.univariate.UnivariateStatistic#evaluate(double[])
1.6 +5 -2 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/SummaryStatistics.java
Index: SummaryStatistics.java
===================================================================
RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/SummaryStatistics.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SummaryStatistics.java 19 May 2004 14:16:31 -0000 1.5
+++ SummaryStatistics.java 1 Jun 2004 21:34:35 -0000 1.6
@@ -24,8 +24,11 @@
*
* @version $Revision$ $Date$
*/
-public abstract class SummaryStatistics implements Serializable, StatisticalSummary {
+public abstract class SummaryStatistics implements StatisticalSummary, Serializable {
+ /** Serialization UID */
+ static final long serialVersionUID = -6400596334135654825L;
+
/**
* Create an instance of a <code>SummaryStatistics</code>
* @param cls the type of <code>SummaryStatistics</code> object to
1.15 +7 -2 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/AbstractStorelessUnivariateStatistic.java
Index: AbstractStorelessUnivariateStatistic.java
===================================================================
RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/AbstractStorelessUnivariateStatistic.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- AbstractStorelessUnivariateStatistic.java 21 Mar 2004 21:57:18 -0000 1.14
+++ AbstractStorelessUnivariateStatistic.java 1 Jun 2004 21:34:35 -0000 1.15
@@ -15,6 +15,8 @@
*/
package org.apache.commons.math.stat.univariate;
+import java.io.Serializable;
+
/**
*
* Abstract Implementation for the {@link StorelessUnivariateStatistic} interface.
@@ -25,8 +27,11 @@
*/
public abstract class AbstractStorelessUnivariateStatistic
extends AbstractUnivariateStatistic
- implements StorelessUnivariateStatistic {
+ implements StorelessUnivariateStatistic, Serializable {
+ /** Serialization UID */
+ static final long serialVersionUID = -44915725420072521L;
+
/**
* This default implementation just calls {@link #increment} in a loop over the input array and
* then {@link #getResult} to compute the return value.
1.6 +82 -15 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/DescriptiveStatistics.java
Index: DescriptiveStatistics.java
===================================================================
RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/DescriptiveStatistics.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DescriptiveStatistics.java 23 May 2004 00:56:15 -0000 1.5
+++ DescriptiveStatistics.java 1 Jun 2004 21:34:35 -0000 1.6
@@ -16,8 +16,19 @@
package org.apache.commons.math.stat.univariate;
import java.io.Serializable;
+import java.util.Arrays;
import org.apache.commons.discovery.tools.DiscoverClass;
+import org.apache.commons.math.stat.univariate.moment.GeometricMean;
+import org.apache.commons.math.stat.univariate.moment.Kurtosis;
+import org.apache.commons.math.stat.univariate.moment.Mean;
+import org.apache.commons.math.stat.univariate.moment.Skewness;
+import org.apache.commons.math.stat.univariate.moment.Variance;
+import org.apache.commons.math.stat.univariate.rank.Max;
+import org.apache.commons.math.stat.univariate.rank.Min;
+import org.apache.commons.math.stat.univariate.rank.Percentile;
+import org.apache.commons.math.stat.univariate.summary.Sum;
+import org.apache.commons.math.stat.univariate.summary.SumOfSquares;
/**
@@ -25,8 +36,11 @@
*
* @version $Revision$ $Date$
*/
-public abstract class DescriptiveStatistics implements Serializable, StatisticalSummary {
-
+public abstract class DescriptiveStatistics implements StatisticalSummary, Serializable {
+
+ /** Serialization UID */
+ static final long serialVersionUID = 5188298269533339922L;
+
/**
* Create an instance of a <code>DescriptiveStatistics</code>
* @param cls the type of <code>DescriptiveStatistics</code> object to
@@ -94,7 +108,9 @@
* arithmetic mean </a> of the available values
* @return The mean or Double.NaN if no values have been added.
*/
- public abstract double getMean();
+ public double getMean() {
+ return apply(new Mean());
+ }
/**
* Returns the <a href="http://www.xycoon.com/geometric_mean.htm">
@@ -102,21 +118,35 @@
* @return The geometricMean, Double.NaN if no values have been added,
* or if the productof the available values is less than or equal to 0.
*/
- public abstract double getGeometricMean();
+ public double getGeometricMean() {
+ return apply(new GeometricMean());
+ }
/**
* Returns the variance of the available values.
* @return The variance, Double.NaN if no values have been added
* or 0.0 for a single value set.
*/
- public abstract double getVariance();
+ public double getVariance() {
+ return apply(new Variance());
+ }
/**
* Returns the standard deviation of the available values.
* @return The standard deviation, Double.NaN if no values have been added
* or 0.0 for a single value set.
*/
- public abstract double getStandardDeviation();
+ public double getStandardDeviation() {
+ double stdDev = Double.NaN;
+ if (getN() > 0) {
+ if (getN() > 1) {
+ stdDev = Math.sqrt(getVariance());
+ } else {
+ stdDev = 0.0;
+ }
+ }
+ return (stdDev);
+ }
/**
* Returns the skewness of the available values. Skewness is a
@@ -124,7 +154,9 @@
* @return The skewness, Double.NaN if no values have been added
* or 0.0 for a value set <=2.
*/
- public abstract double getSkewness();
+ public double getSkewness() {
+ return apply(new Skewness());
+ }
/**
* Returns the Kurtosis of the available values. Kurtosis is a
@@ -132,19 +164,25 @@
* @return The kurtosis, Double.NaN if no values have been added, or 0.0
* for a value set <=3.
*/
- public abstract double getKurtosis();
+ public double getKurtosis() {
+ return apply(new Kurtosis());
+ }
/**
* Returns the maximum of the available values
* @return The max or Double.NaN if no values have been added.
*/
- public abstract double getMax();
+ public double getMax() {
+ return apply(new Max());
+ }
/**
* Returns the minimum of the available values
* @return The min or Double.NaN if no values have been added.
*/
- public abstract double getMin();
+ public double getMin() {
+ return apply(new Min());
+ }
/**
* Returns the number of available values
@@ -156,14 +194,18 @@
* Returns the sum of the values that have been added to Univariate.
* @return The sum or Double.NaN if no values have been added
*/
- public abstract double getSum();
+ public double getSum() {
+ return apply(new Sum());
+ }
/**
* Returns the sum of the squares of the available values.
* @return The sum of the squares or Double.NaN if no
* values have been added.
*/
- public abstract double getSumsq();
+ public double getSumsq() {
+ return apply(new SumOfSquares());
+ }
/**
* Resets all statistics and storage
@@ -208,7 +250,11 @@
* @return returns the current set of
* numbers sorted in ascending order
*/
- public abstract double[] getSortedValues();
+ public double[] getSortedValues() {
+ double[] sort = getValues();
+ Arrays.sort(sort);
+ return sort;
+ }
/**
* Returns the element at the specified index
@@ -234,8 +280,29 @@
* @return An estimate for the pth percentile of the stored data
* values
*/
- public abstract double getPercentile(double p);
+ public double getPercentile(double p) {
+ return apply(new Percentile(p));
+ }
+ /**
+ * Generates a text report displaying
+ * univariate statistics from values that
+ * have been added.
+ * @return String with line feeds displaying statistics
+ */
+ public String toString() {
+ StringBuffer outBuffer = new StringBuffer();
+ outBuffer.append("UnivariateImpl:\n");
+ outBuffer.append("n: " + getN() + "\n");
+ outBuffer.append("min: " + getMin() + "\n");
+ outBuffer.append("max: " + getMax() + "\n");
+ outBuffer.append("mean: " + getMean() + "\n");
+ outBuffer.append("std dev: " + getStandardDeviation() + "\n");
+ outBuffer.append("skewness: " + getSkewness() + "\n");
+ outBuffer.append("kurtosis: " + getKurtosis() + "\n");
+ return outBuffer.toString();
+ }
+
/**
* Apply the given statistic to the data associated with this set of statistics.
* @param stat the statistic to apply
1.3 +6 -2 jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/SummaryStatisticsImpl.java
Index: SummaryStatisticsImpl.java
===================================================================
RCS file: /home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate/SummaryStatisticsImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SummaryStatisticsImpl.java 27 Apr 2004 04:37:59 -0000 1.2
+++ SummaryStatisticsImpl.java 1 Jun 2004 21:34:35 -0000 1.3
@@ -15,6 +15,7 @@
*/
package org.apache.commons.math.stat.univariate;
+import java.io.Serializable;
import org.apache.commons.math.stat.univariate.moment.SecondMoment;
import org.apache.commons.math.stat.univariate.moment.GeometricMean;
import org.apache.commons.math.stat.univariate.moment.Mean;
@@ -30,7 +31,10 @@
*
* @version $Revision$ $Date$
*/
-public class SummaryStatisticsImpl extends SummaryStatistics {
+public class SummaryStatisticsImpl extends SummaryStatistics implements Serializable {
+
+ /** Serializable version identifier */
+ static final long serialVersionUID = 8787174276883311692L;
/** count of values that have been added */
protected long n = 0;
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org