// Path: src/java/org/sidoh/math/Stats.java
// public class Stats {
// 	/**
// 	 * 
// 	 * @param a
// 	 * @return
// 	 */
// 	public static double mean(Iterable<Double> a) {
// 		double sum = 0d;
// 		int count  = 0;
// 		for (double value : a) {
// 			sum += value;
// 			count++;
// 		}
// 		return sum/count;
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param a
// 	 * @return
// 	 */
// 	public static double variance(Iterable<Double> a) {
// 		double sum = 0d;
// 		double sq  = 0d;
// 		int n = 0;
// 		
// 		for (double value : a) {
// 			sum += value;
// 			sq  += value*value;
// 			n++;
// 		}
// 		
// 		return 
// 			(n*sq - sum*sum)
// 				/
// 			(n * (n-1));
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param n
// 	 * @param sum
// 	 * @param sqSum
// 	 * @return
// 	 */
// 	public static double variance(int n, double sum, double sqSum) {
// 		return (n*sqSum - sum*sum) / (n * (n-1));
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param n
// 	 * @param sum
// 	 * @param sqSum
// 	 * @return
// 	 */
// 	public static double sd(int n, double sum, double sqSum) {
// 		return Math.sqrt(variance(n,sum,sqSum));
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param a
// 	 * @return
// 	 */
// 	public static double sd(Iterable<Double> a) {
// 		return Math.sqrt(variance(a));
// 	}
// }


import java.util.Iterator;
import org.sidoh.math.Stats;
	 * @return
	 */
	public int getMaxCount() {
		return maxCount;
	}
	
	/**
	 * Returns the count of the bin with the fewest counts
	 * 
	 * @return
	 */
	public int getMinCount() {
		return minCount;
	}
	
	/**
	 * Returns the mean of the counts
	 * 
	 * @return
	 */
	public double getMeanCount() {
		return countsSum / getNumBins();
	}
	
	/**
	 * Returns the standard deviation of the counts
	 * 
	 * @return
	 */
	public double getCountSd() {
// Path: src/java/org/sidoh/math/Stats.java
// public class Stats {
// 	/**
// 	 * 
// 	 * @param a
// 	 * @return
// 	 */
// 	public static double mean(Iterable<Double> a) {
// 		double sum = 0d;
// 		int count  = 0;
// 		for (double value : a) {
// 			sum += value;
// 			count++;
// 		}
// 		return sum/count;
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param a
// 	 * @return
// 	 */
// 	public static double variance(Iterable<Double> a) {
// 		double sum = 0d;
// 		double sq  = 0d;
// 		int n = 0;
// 		
// 		for (double value : a) {
// 			sum += value;
// 			sq  += value*value;
// 			n++;
// 		}
// 		
// 		return 
// 			(n*sq - sum*sum)
// 				/
// 			(n * (n-1));
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param n
// 	 * @param sum
// 	 * @param sqSum
// 	 * @return
// 	 */
// 	public static double variance(int n, double sum, double sqSum) {
// 		return (n*sqSum - sum*sum) / (n * (n-1));
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param n
// 	 * @param sum
// 	 * @param sqSum
// 	 * @return
// 	 */
// 	public static double sd(int n, double sum, double sqSum) {
// 		return Math.sqrt(variance(n,sum,sqSum));
// 	}
// 	
// 	/**
// 	 * 
// 	 * @param a
// 	 * @return
// 	 */
// 	public static double sd(Iterable<Double> a) {
// 		return Math.sqrt(variance(a));
// 	}
// }


// Path: src/java/org/sidoh/collections/BufferedCountingMap.java
import java.util.Iterator;
import org.sidoh.math.Stats;

	 * @return
	 */
	public int getMaxCount() {
		return maxCount;
	}
	
	/**
	 * Returns the count of the bin with the fewest counts
	 * 
	 * @return
	 */
	public int getMinCount() {
		return minCount;
	}
	
	/**
	 * Returns the mean of the counts
	 * 
	 * @return
	 */
	public double getMeanCount() {
		return countsSum / getNumBins();
	}
	
	/**
	 * Returns the standard deviation of the counts
	 * 
	 * @return
	 */
	public double getCountSd() {
		return Stats.sd(getNumBins(), countsSum, sqCountsSum);