Author: erans
Date: Wed Nov 14 22:55:07 2012
New Revision: 1409509
URL: http://svn.apache.org/viewvc?rev=1409509&view=rev
Log:
Replaced calls to deprecated methods in "ResizeableDoubleArray" (see
MATH-894). Created subclass of "ResizeableDoubleArray" in order to
access to the object's internal array.
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/DescriptiveStatistics.java
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/DescriptiveStatistics.java
URL:
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/DescriptiveStatistics.java?rev=1409509&r1=1409508&r2=1409509&view=diff
==============================================================================
---
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/DescriptiveStatistics.java
(original)
+++
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/DescriptiveStatistics.java
Wed Nov 14 22:55:07 2012
@@ -79,7 +79,7 @@ public class DescriptiveStatistics imple
/**
* Stored data values
*/
- private ResizableDoubleArray eDA = new ResizableDoubleArray();
+ private StatArray eDA = new StatArray();
/** Mean statistic implementation - can be reset by setter. */
private UnivariateStatistic meanImpl = new Mean();
@@ -138,7 +138,7 @@ public class DescriptiveStatistics imple
*/
public DescriptiveStatistics(double[] initialDoubleArray) {
if (initialDoubleArray != null) {
- eDA = new ResizableDoubleArray(initialDoubleArray);
+ eDA = new StatArray(initialDoubleArray);
}
}
@@ -484,7 +484,7 @@ public class DescriptiveStatistics imple
*/
public double apply(UnivariateStatistic stat) {
// No try-catch or advertised exception here because arguments are
guaranteed valid
- return stat.evaluate(eDA.getInternalValues(), eDA.start(),
eDA.getNumElements());
+ return eDA.compute(stat);
}
// Implementation getters and setter
@@ -762,4 +762,55 @@ public class DescriptiveStatistics imple
dest.skewnessImpl = source.skewnessImpl;
dest.percentileImpl = source.percentileImpl;
}
+
+ /**
+ * Provides a method to compute a statistics on the contents of the
+ * array.
+ */
+ private static class StatArray extends ResizableDoubleArray {
+ /** Default constructor. */
+ public StatArray() {}
+
+ /**
+ * Builds an instance with the same contents as the given array.
+ *
+ * @param initialArray Data.
+ */
+ public StatArray(double[] initialArray) {
+ super(initialArray);
+ }
+
+ /**
+ * Builds a copy of the given instance.
+ *
+ * @param other Array.
+ * @throws NullArgumentException if the argument is {@code null}.
+ */
+ public StatArray(StatArray other)
+ throws NullArgumentException {
+ super(other);
+ }
+
+ /**
+ * Computes the given statistics from the contents of this array.
+ *
+ * @param stat Statistics.
+ * @return the result of evaluating the statistics on the current
+ * contents of this array.
+ */
+ public double compute(UnivariateStatistic stat) {
+ return stat.evaluate(getArrayRef(),
+ getStartIndex(),
+ getNumElements());
+ }
+
+ /**
+ * Creates a copy of this instance.
+ *
+ * @return a copy of this instance.
+ */
+ public StatArray copy() {
+ return new StatArray(this);
+ }
+ }
}