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]

Reply via email to