You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ps...@apache.org on 2004/06/18 01:14:55 UTC

cvs commit: jakarta-commons/math/src/java/org/apache/commons/math/stat/univariate SummaryStatistics.java

psteitz     2004/06/17 16:14:55

  Modified:    math/src/java/org/apache/commons/math/stat/univariate
                        SummaryStatistics.java
  Log:
  Implemented equals and hashcode, making summaries with identical statistics equal.
  
  Revision  Changes    Path
  1.8       +45 -1     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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SummaryStatistics.java	14 Jun 2004 23:26:53 -0000	1.7
  +++ SummaryStatistics.java	17 Jun 2004 23:14:55 -0000	1.8
  @@ -18,6 +18,7 @@
   import java.io.Serializable;
   
   import org.apache.commons.discovery.tools.DiscoverClass;
  +import org.apache.commons.math.util.MathUtils;
   
   /**
    * Abstract factory class for univariate statistical summaries.
  @@ -157,5 +158,48 @@
        * Resets all statistics
        */
       public abstract void clear();
  +    
  +    /**
  +     * Returns true iff <code>object</code> is a <code>SummaryStatistics</code>
  +     * instance and all statistics have the same values as this.
  +     *
  +     * @return true if object equals this
  +     */
  +    public boolean equals(Object object) {
  +        if (object == this ) {
  +            return true;
  +        }
  +        if (object instanceof SummaryStatistics == false) {
  +            return false;
  +        }
  +        SummaryStatistics stat = (SummaryStatistics) object;
  +        return (MathUtils.equals(stat.getGeometricMean(), 
  +                this.getGeometricMean()) &&
  +                MathUtils.equals(stat.getMax(), this.getMax()) && 
  +                MathUtils.equals(stat.getMean(),this.getMean()) &&
  +                MathUtils.equals(stat.getMin(),this.getMin()) &&
  +                MathUtils.equals(stat.getN(), this.getN()) &&
  +                MathUtils.equals(stat.getSum(), this.getSum()) &&
  +                MathUtils.equals(stat.getSumsq(),this.getSumsq()) &&
  +                MathUtils.equals(stat.getVariance(),this.getVariance()));
  +    }
  +    
  +    /**
  +     * Returns hash code based on values of statistics
  +     * 
  +     * @return hash code
  +     */
  +    public int hashCode() {
  +        int result = 31 + MathUtils.hash(getGeometricMean());
  +        result = result * 31 + MathUtils.hash(getGeometricMean());
  +        result = result * 31 + MathUtils.hash(getMax());
  +        result = result * 31 + MathUtils.hash(getMean());
  +        result = result * 31 + MathUtils.hash(getMin());
  +        result = result * 31 + MathUtils.hash(getN());
  +        result = result * 31 + MathUtils.hash(getSum());
  +        result = result * 31 + MathUtils.hash(getSumsq());
  +        result = result * 31 + MathUtils.hash(getVariance());
  +        return result;
  +    }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org