psteitz 2004/06/06 16:14:09
Modified: math/src/java/org/apache/commons/math/stat/inference
ChiSquareTestImpl.java
Log:
Cached DistributionFactory instance.
Revision Changes Path
1.5 +17 -5
jakarta-commons/math/src/java/org/apache/commons/math/stat/inference/ChiSquareTestImpl.java
Index: ChiSquareTestImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/math/src/java/org/apache/commons/math/stat/inference/ChiSquareTestImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ChiSquareTestImpl.java 5 Jun 2004 20:11:06 -0000 1.4
+++ ChiSquareTestImpl.java 6 Jun 2004 23:14:09 -0000 1.5
@@ -15,8 +15,6 @@
*/
package org.apache.commons.math.stat.inference;
-import java.io.Serializable;
-
import org.apache.commons.math.MathException;
import org.apache.commons.math.distribution.DistributionFactory;
import org.apache.commons.math.distribution.ChiSquaredDistribution;
@@ -27,6 +25,9 @@
* @version $Revision$ $Date$
*/
public class ChiSquareTestImpl implements ChiSquareTest {
+
+ /** Cached DistributionFactory used to create ChiSquaredDistribution instances
*/
+ private DistributionFactory distributionFactory = null;
public ChiSquareTestImpl() {
super();
@@ -67,7 +68,7 @@
public double chiSquareTest(double[] expected, long[] observed)
throws IllegalArgumentException, MathException {
ChiSquaredDistribution chiSquaredDistribution =
- DistributionFactory.newInstance().createChiSquareDistribution((double)
expected.length - 1);
+ getDistributionFactory().createChiSquareDistribution((double)
expected.length - 1);
return 1 - chiSquaredDistribution.cumulativeProbability(chiSquare(expected,
observed));
}
@@ -135,7 +136,7 @@
checkArray(counts);
double df = ((double) counts.length -1) * ((double) counts[0].length - 1);
ChiSquaredDistribution chiSquaredDistribution =
- DistributionFactory.newInstance().createChiSquareDistribution(df);
+ getDistributionFactory().createChiSquareDistribution(df);
return 1 - chiSquaredDistribution.cumulativeProbability(chiSquare(counts));
}
@@ -181,6 +182,17 @@
throw new IllegalArgumentException("All entries in input 2-way table
must be non-negative");
}
+ }
+
+ //--------------------- Protected methods ---------------------------------
+ /**
+ * Gets a DistributionFactory to use in creating ChiSquaredDistribution
instances.
+ */
+ protected DistributionFactory getDistributionFactory() {
+ if (distributionFactory == null) {
+ distributionFactory = DistributionFactory.newInstance();
+ }
+ return distributionFactory;
}
//--------------------- Private array methods -- should find a utility home
for these
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]