Author: psteitz
Date: Sun Nov 25 21:27:05 2007
New Revision: 598133
URL: http://svn.apache.org/viewvc?rev=598133&view=rev
Log:
Deprecated abstract factory methods and made DescriptiveStatistics a concrete
class. Pushed implementations up from DescriptiveStatisticsImpl and deprecated
this class. Made implementations of statistics configurable via setters.
Added:
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsTest.java
(with props)
Modified:
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.java
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsAbstractTest.java
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImplTest.java
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/ListUnivariateImpl.java
commons/proper/math/trunk/xdocs/changes.xml
Modified:
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java?rev=598133&r1=598132&r2=598133&view=diff
==============================================================================
---
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
(original)
+++
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
Sun Nov 25 21:27:05 2007
@@ -30,27 +30,80 @@
import org.apache.commons.math.stat.descriptive.rank.Percentile;
import org.apache.commons.math.stat.descriptive.summary.Sum;
import org.apache.commons.math.stat.descriptive.summary.SumOfSquares;
+import org.apache.commons.math.util.ResizableDoubleArray;
/**
- * Abstract factory class for univariate statistical summaries.
+ * Maintains a dataset of values of a single variable and computes descriptive
+ * statistics based on stored data. The [EMAIL PROTECTED] #getWindowSize()
windowSize}
+ * property sets a limit on the number of values that can be stored in the
+ * dataset. The default value, INFINITE_WINDOW, puts no limit on the size of
+ * the dataset. This value should be used with caution, as the backing store
+ * will grow without bound in this case. For very large datasets,
+ * [EMAIL PROTECTED] SummaryStatistics}, which does not store the dataset,
should be used
+ * instead of this class. If <code>windowSize</code> is not INFINITE_WINDOW and
+ * more values are added than can be stored in the dataset, new values are
+ * added in a "rolling" manner, with new values replacing the "oldest" values
+ * in the dataset.
+ *
+ * Note: this class is not threadsafe. Use
+ * [EMAIL PROTECTED] SynchronizedDescriptiveStatistics} if concurrent access
from multiple
+ * threads is required.
*
* @version $Revision$ $Date$
*/
-public abstract class DescriptiveStatistics implements StatisticalSummary,
Serializable {
+public class DescriptiveStatistics implements StatisticalSummary, Serializable
{
/** Serialization UID */
private static final long serialVersionUID = 5188298269533339922L;
+ /** hold the window size **/
+ protected int windowSize = INFINITE_WINDOW;
+
+ /**
+ * Stored data values
+ */
+ protected ResizableDoubleArray eDA = new ResizableDoubleArray();
+
+ // Cached implementation instances
+ // Can be reset by setters
+ private UnivariateStatistic meanImpl = null;
+ private UnivariateStatistic geometricMeanImpl = null;
+ private UnivariateStatistic kurtosisImpl = null;
+ private UnivariateStatistic maxImpl = null;
+ private UnivariateStatistic minImpl = null;
+ private UnivariateStatistic percentileImpl = null;
+ private UnivariateStatistic skewnessImpl = null;
+ private UnivariateStatistic varianceImpl = null;
+ private UnivariateStatistic sumsqImpl = null;
+ private UnivariateStatistic sumImpl = null;
+
+ /**
+ * Construct a DescriptiveStatistics instance with an infinite window
+ */
+ public DescriptiveStatistics() {
+ }
+
+ /**
+ * Construct a DescriptiveStatistics instance with the specified window
+ *
+ * @param window the window size.
+ */
+ public DescriptiveStatistics(int window) {
+ super();
+ setWindowSize(window);
+ }
+
/**
* Create an instance of a <code>DescriptiveStatistics</code>
* @param cls the type of <code>DescriptiveStatistics</code> object to
* create.
- * @return a new factory.
+ * @return a new instance.
* @throws InstantiationException is thrown if the object can not be
* created.
* @throws IllegalAccessException is thrown if the type's default
* constructor is not accessible.
+ * @deprecated to be removed in commons-math 2.0
*/
public static DescriptiveStatistics newInstance(Class cls) throws
InstantiationException, IllegalAccessException {
return (DescriptiveStatistics)cls.newInstance();
@@ -58,7 +111,8 @@
/**
* Create an instance of a <code>DescriptiveStatistics</code>
- * @return a new factory.
+ * @return a new DescriptiveStatistics instance.
+ * @deprecated to be removed in commons-math 2.0
*/
public static DescriptiveStatistics newInstance() {
DescriptiveStatistics factory = null;
@@ -82,10 +136,24 @@
public static final int INFINITE_WINDOW = -1;
/**
- * Adds the value to the set of numbers
+ * Adds the value to the dataset. If the dataset is at the maximum size
+ * (i.e., the number of stored elements equals the currently configured
+ * windowSize), the first (oldest) element in the dataset is discarded
+ * to make room for the new value.
+ *
* @param v the value to be added
*/
- public abstract void addValue(double v);
+ public void addValue(double v) {
+ if (windowSize != INFINITE_WINDOW) {
+ if (getN() == windowSize) {
+ eDA.addElementRolling(v);
+ } else if (getN() < windowSize) {
+ eDA.addElement(v);
+ }
+ } else {
+ eDA.addElement(v);
+ }
+ }
/**
* Returns the <a href="http://www.xycoon.com/arithmetic_mean.htm">
@@ -93,7 +161,7 @@
* @return The mean or Double.NaN if no values have been added.
*/
public double getMean() {
- return apply(new Mean());
+ return apply(getMeanImpl());
}
/**
@@ -103,7 +171,7 @@
* or if the productof the available values is less than or equal to 0.
*/
public double getGeometricMean() {
- return apply(new GeometricMean());
+ return apply(getGeometricMeanImpl());
}
/**
@@ -112,7 +180,7 @@
* or 0.0 for a single value set.
*/
public double getVariance() {
- return apply(new Variance());
+ return apply(getVarianceImpl());
}
/**
@@ -134,12 +202,12 @@
/**
* Returns the skewness of the available values. Skewness is a
- * measure of the assymetry of a given distribution.
+ * measure of the asymmetry of a given distribution.
* @return The skewness, Double.NaN if no values have been added
* or 0.0 for a value set <=2.
*/
public double getSkewness() {
- return apply(new Skewness());
+ return apply(getSkewnessImpl());
}
/**
@@ -149,7 +217,7 @@
* for a value set <=3.
*/
public double getKurtosis() {
- return apply(new Kurtosis());
+ return apply(getKurtosisImpl());
}
/**
@@ -157,7 +225,7 @@
* @return The max or Double.NaN if no values have been added.
*/
public double getMax() {
- return apply(new Max());
+ return apply(getMaxImpl());
}
/**
@@ -165,21 +233,23 @@
* @return The min or Double.NaN if no values have been added.
*/
public double getMin() {
- return apply(new Min());
+ return apply(getMinImpl());
}
/**
* Returns the number of available values
* @return The number of available values
*/
- public abstract long getN();
+ public long getN() {
+ return eDA.getNumElements();
+ }
/**
* 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 double getSum() {
- return apply(new Sum());
+ return apply(getSumImpl());
}
/**
@@ -188,32 +258,52 @@
* values have been added.
*/
public double getSumsq() {
- return apply(new SumOfSquares());
+ return apply(getSumsqImpl());
}
/**
* Resets all statistics and storage
*/
- public abstract void clear();
+ public void clear() {
+ eDA.clear();
+ }
+
/**
- * Univariate has the ability to return only measures for the
- * last N elements added to the set of values.
+ * Returns the maximum number of values that can be stored in the
+ * dataset, or INFINITE_WINDOW (-1) if there is no limit.
+ *
* @return The current window size or -1 if its Infinite.
*/
-
- public abstract int getWindowSize();
+ public int getWindowSize() {
+ return windowSize;
+ }
/**
* WindowSize controls the number of values which contribute
- * to the values returned by Univariate. For example, if
+ * to the reported statistics. For example, if
* windowSize is set to 3 and the values {1,2,3,4,5}
* have been added <strong> in that order</strong>
* then the <i>available values</i> are {3,4,5} and all
* reported statistics will be based on these values
* @param windowSize sets the size of the window.
*/
- public abstract void setWindowSize(int windowSize);
+ public void setWindowSize(int windowSize) {
+ if (windowSize < 1) {
+ if (windowSize != INFINITE_WINDOW) {
+ throw new IllegalArgumentException("window size must be
positive.");
+ }
+ }
+
+ this.windowSize = windowSize;
+
+ // We need to check to see if we need to discard elements
+ // from the front of the array. If the windowSize is less than
+ // the current number of elements.
+ if (windowSize != INFINITE_WINDOW && windowSize <
eDA.getNumElements()) {
+ eDA.discardFrontElements(eDA.getNumElements() - windowSize);
+ }
+ }
/**
* Returns the current set of values in an array of double primitives.
@@ -224,7 +314,12 @@
* @return returns the current set of numbers in the order in which they
* were added to this set
*/
- public abstract double[] getValues();
+ public double[] getValues() {
+ double[] copiedArray = new double[eDA.getNumElements()];
+ System.arraycopy(eDA.getElements(), 0, copiedArray,
+ 0, eDA.getNumElements());
+ return copiedArray;
+ }
/**
* Returns the current set of values in an array of double primitives,
@@ -245,7 +340,9 @@
* @param index The Index of the element
* @return return the element at the specified index
*/
- public abstract double getElement(int index);
+ public double getElement(int index) {
+ return eDA.getElement(index);
+ }
/**
* Returns an estimate for the pth percentile of the stored values.
@@ -294,6 +391,180 @@
* @param stat the statistic to apply
* @return the computed value of the statistic.
*/
- public abstract double apply(UnivariateStatistic stat);
+ public double apply(UnivariateStatistic stat) {
+ return stat.evaluate(eDA.getValues(), eDA.start(),
eDA.getNumElements());
+ }
+
+ // Implementation getters and setter
+
+ /**
+ * @return the meanImpl
+ */
+ public UnivariateStatistic getMeanImpl() {
+ if (meanImpl == null) {
+ meanImpl = new Mean();
+ }
+ return meanImpl;
+ }
+
+ /**
+ * @param meanImpl the meanImpl to set
+ */
+ public void setMeanImpl(UnivariateStatistic meanImpl) {
+ this.meanImpl = meanImpl;
+ }
+
+ /**
+ * @return the geometricMeanImpl
+ */
+ public UnivariateStatistic getGeometricMeanImpl() {
+ if (geometricMeanImpl == null) {
+ geometricMeanImpl = new GeometricMean();
+ }
+ return geometricMeanImpl;
+ }
+ /**
+ * @param geometricMeanImpl the geometricMeanImpl to set
+ */
+ public void setGeometricMeanImpl(UnivariateStatistic geometricMeanImpl) {
+ this.geometricMeanImpl = geometricMeanImpl;
+ }
+
+ /**
+ * @return the kurtosisImpl
+ */
+ public UnivariateStatistic getKurtosisImpl() {
+ if (kurtosisImpl == null) {
+ kurtosisImpl = new Kurtosis();
+ }
+ return kurtosisImpl;
+ }
+
+ /**
+ * @param kurtosisImpl the kurtosisImpl to set
+ */
+ public void setKurtosisImpl(UnivariateStatistic kurtosisImpl) {
+ this.kurtosisImpl = kurtosisImpl;
+ }
+
+ /**
+ * @return the maxImpl
+ */
+ public UnivariateStatistic getMaxImpl() {
+ if (maxImpl == null) {
+ maxImpl = new Max();
+ }
+ return maxImpl;
+ }
+
+ /**
+ * @param maxImpl the maxImpl to set
+ */
+ public void setMaxImpl(UnivariateStatistic maxImpl) {
+ this.maxImpl = maxImpl;
+ }
+
+ /**
+ * @return the minImpl
+ */
+ public UnivariateStatistic getMinImpl() {
+ if (minImpl == null) {
+ minImpl = new Min();
+ }
+ return minImpl;
+ }
+
+ /**
+ * @param minImpl the minImpl to set
+ */
+ public void setMinImpl(UnivariateStatistic minImpl) {
+ this.minImpl = minImpl;
+ }
+
+ /**
+ * @return the percentileImpl
+ */
+ public UnivariateStatistic getPercentileImpl() {
+ if (percentileImpl == null) {
+ percentileImpl = new Percentile();
+ }
+ return percentileImpl;
+ }
+
+ /**
+ * @param percentileImpl the percentileImpl to set
+ */
+ public void setPercentileImpl(UnivariateStatistic percentileImpl) {
+ this.percentileImpl = percentileImpl;
+ }
+
+ /**
+ * @return the skewnessImpl
+ */
+ public UnivariateStatistic getSkewnessImpl() {
+ if (skewnessImpl == null) {
+ skewnessImpl = new Skewness();
+ }
+ return skewnessImpl;
+ }
+
+ /**
+ * @param skewnessImpl the skewnessImpl to set
+ */
+ public void setSkewnessImpl(UnivariateStatistic skewnessImpl) {
+ this.skewnessImpl = skewnessImpl;
+ }
+
+ /**
+ * @return the varianceImpl
+ */
+ public UnivariateStatistic getVarianceImpl() {
+ if (varianceImpl == null) {
+ varianceImpl = new Variance();
+ }
+ return varianceImpl;
+ }
+
+ /**
+ * @param varianceImpl the varianceImpl to set
+ */
+ public void setVarianceImpl(UnivariateStatistic varianceImpl) {
+ this.varianceImpl = varianceImpl;
+ }
+
+ /**
+ * @return the sumsqImpl
+ */
+ public UnivariateStatistic getSumsqImpl() {
+ if (sumsqImpl == null) {
+ sumsqImpl = new SumOfSquares();
+ }
+ return sumsqImpl;
+ }
+
+ /**
+ * @param sumsqImpl the sumsqImpl to set
+ */
+ public void setSumsqImpl(UnivariateStatistic sumsqImpl) {
+ this.sumsqImpl = sumsqImpl;
+ }
+
+ /**
+ * @return the sumImpl
+ */
+ public UnivariateStatistic getSumImpl() {
+ if (sumImpl == null) {
+ sumImpl = new Sum();
+ }
+ return sumImpl;
+ }
+
+ /**
+ * @param sumImpl the sumImpl to set
+ */
+ public void setSumImpl(UnivariateStatistic sumImpl) {
+ this.sumImpl = sumImpl;
+ }
+
}
Modified:
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.java?rev=598133&r1=598132&r2=598133&view=diff
==============================================================================
---
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.java
(original)
+++
commons/proper/math/trunk/src/java/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.java
Sun Nov 25 21:27:05 2007
@@ -30,20 +30,12 @@
/** Serializable version identifier */
private static final long serialVersionUID = -1868088725461221010L;
-
- /** hold the window size **/
- protected int windowSize;
-
- /**
- * Stored data values
- */
- protected ResizableDoubleArray eDA;
/**
* Construct a DescriptiveStatisticsImpl with infinite window
*/
public DescriptiveStatisticsImpl() {
- this(INFINITE_WINDOW);
+ super();
}
/**
@@ -51,96 +43,13 @@
* @param window the finite window size.
*/
public DescriptiveStatisticsImpl(int window) {
- super();
- eDA = new ResizableDoubleArray();
- setWindowSize(window);
- }
-
- /**
- * Access the window size.
- * @return the current window size.
- */
- public int getWindowSize() {
- return windowSize;
+ super(window);
}
- /**
- * @see
org.apache.commons.math.stat.descriptive.DescriptiveStatistics#getValues()
- */
- public double[] getValues() {
-
- double[] copiedArray = new double[eDA.getNumElements()];
- System.arraycopy(
- eDA.getElements(),
- 0,
- copiedArray,
- 0,
- eDA.getNumElements());
- return copiedArray;
- }
-
- /**
- * @see
org.apache.commons.math.stat.descriptive.DescriptiveStatistics#getElement(int)
- */
- public double getElement(int index) {
- return eDA.getElement(index);
- }
-
- /**
- * @see
org.apache.commons.math.stat.descriptive.DescriptiveStatistics#getN()
- */
- public long getN() {
- return eDA.getNumElements();
- }
-
- /**
- * @see
org.apache.commons.math.stat.descriptive.DescriptiveStatistics#addValue(double)
- */
- public void addValue(double v) {
- if (windowSize != INFINITE_WINDOW) {
- if (getN() == windowSize) {
- eDA.addElementRolling(v);
- } else if (getN() < windowSize) {
- eDA.addElement(v);
- }
- } else {
- eDA.addElement(v);
- }
- }
-
- /**
- * @see
org.apache.commons.math.stat.descriptive.DescriptiveStatistics#clear()
+ /**
+ * Resets all statistics and storage
*/
public void clear() {
- eDA.clear();
- }
-
- /**
- * @see
org.apache.commons.math.stat.descriptive.DescriptiveStatistics#setWindowSize(int)
- */
- public void setWindowSize(int windowSize) {
- if (windowSize < 1) {
- if (windowSize != INFINITE_WINDOW) {
- throw new IllegalArgumentException("window size must be
positive.");
- }
- }
-
- this.windowSize = windowSize;
-
- // We need to check to see if we need to discard elements
- // from the front of the array. If the windowSize is less than
- // the current number of elements.
- if (windowSize != INFINITE_WINDOW && windowSize <
eDA.getNumElements()) {
- eDA.discardFrontElements(eDA.getNumElements() - windowSize);
- }
- }
-
- /**
- * Apply the given statistic to this univariate collection.
- * @param stat the statistic to apply
- * @return the computed value of the statistic.
- */
- public double apply(UnivariateStatistic stat) {
- return stat.evaluate(eDA.getValues(), eDA.start(),
eDA.getNumElements());
+ super.clear();
}
}
Modified:
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsAbstractTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsAbstractTest.java?rev=598133&r1=598132&r2=598133&view=diff
==============================================================================
---
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsAbstractTest.java
(original)
+++
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsAbstractTest.java
Sun Nov 25 21:27:05 2007
@@ -25,9 +25,11 @@
import org.apache.commons.math.random.RandomDataImpl;
/**
- * Test cases for the [EMAIL PROTECTED] Univariate} class.
+ * Test cases for the DescriptiveStatistics implementations.
*
* @version $Revision$ $Date$
+ * @deprecated should be moved down into DescriptiveStatisticsTest
+ * when DescriptiveStatisticsImpl is removed in 2.0
*/
public abstract class DescriptiveStatisticsAbstractTest extends TestCase {
private double var = 0.666666666666666666667;
Modified:
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImplTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImplTest.java?rev=598133&r1=598132&r2=598133&view=diff
==============================================================================
---
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImplTest.java
(original)
+++
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImplTest.java
Sun Nov 25 21:27:05 2007
@@ -17,7 +17,8 @@
import junit.framework.TestSuite;
/**
- * Test cases for the [EMAIL PROTECTED] Univariate} class.
+ * Test cases for the DescriptiveStatisticsImpl class.
+ * @deprecated - to be removed in 2.0 with DescriptiveStatisticsImpl
* @version $Revision$ $Date: 2007-08-16 15:36:33 -0500 (Thu, 16 Aug
* 2007) $
*/
Added:
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsTest.java?rev=598133&view=auto
==============================================================================
---
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsTest.java
(added)
+++
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsTest.java
Sun Nov 25 21:27:05 2007
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
+ * or agreed to in writing, software distributed under the License is
+ * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ */
+package org.apache.commons.math.stat.descriptive;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * Test cases for the DescriptiveStatistics class.
+ * When DescriptiveStatisticsImpl is removed, this class should replace
+ * DescriptiveStatisticsAbstractTest
+ *
+ * @version $Revision: 592121 $ $Date: 2007-08-16 15:36:33 -0500 (Thu, 16 Aug
+ * 2007) $
+ */
+public final class DescriptiveStatisticsTest extends
DescriptiveStatisticsAbstractTest {
+
+ public DescriptiveStatisticsTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(DescriptiveStatisticsTest.class);
+ suite.setName("DescriptiveStatistics Tests");
+ return suite;
+ }
+
+ protected DescriptiveStatistics createDescriptiveStatistics() {
+ return new DescriptiveStatistics();
+ }
+
+ public void testSetterInjection() throws Exception {
+ DescriptiveStatistics stats = new DescriptiveStatistics();
+ stats.addValue(1);
+ stats.addValue(3);
+ assertEquals(2, stats.getMean(), 1E-10);
+ // Now lets try some new math
+ stats.setMeanImpl(new deepMean());
+ assertEquals(42, stats.getMean(), 1E-10);
+ }
+
+ /**
+ * A new way to compute the mean
+ */
+ class deepMean implements UnivariateStatistic {
+ public double evaluate(double[] values, int begin, int length) {
+ return 42;
+ }
+
+ public double evaluate(double[] values) {
+ return 42;
+ }
+
+ }
+}
Propchange:
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/DescriptiveStatisticsTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/ListUnivariateImpl.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/ListUnivariateImpl.java?rev=598133&r1=598132&r2=598133&view=diff
==============================================================================
---
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/ListUnivariateImpl.java
(original)
+++
commons/proper/math/trunk/src/test/org/apache/commons/math/stat/descriptive/ListUnivariateImpl.java
Sun Nov 25 21:27:05 2007
@@ -42,9 +42,6 @@
/** Number Transformer maps Objects to Number for us. */
protected NumberTransformer transformer;
-
- /** hold the window size **/
- protected int windowSize = DescriptiveStatistics.INFINITE_WINDOW;
/**
* No argument Constructor
Modified: commons/proper/math/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/xdocs/changes.xml?rev=598133&r1=598132&r2=598133&view=diff
==============================================================================
--- commons/proper/math/trunk/xdocs/changes.xml (original)
+++ commons/proper/math/trunk/xdocs/changes.xml Sun Nov 25 21:27:05 2007
@@ -106,6 +106,12 @@
Merged most functions from ComplexUtils into Complex class, added
static factory method to Complex.
</action>
+ <action dev="psteitz" type="update">
+ Deprecated abstract factory methods and made DescriptiveStatistics a
+ concrete class. Pushed implementations up from
DescriptiveStatisticsImpl
+ and deprecated this class. Made implementations of statistics
+ configurable via setters.
+ </action>
</release>
<release version="1.1" date="2005-12-17"
description="This is a maintenance release containing bug fixes and
enhancements.