public void doStatsOnList(ArrayList<Float> data) {
		ArrayList<Float> medianFinder = new ArrayList<Float>();
		for (float dataPoint : data) {

			if (dataPoint != dataPoint)
				continue;

			n++;
			sum += dataPoint;
			sumOfSquares += dataPoint * dataPoint;
			medianFinder.add(dataPoint);
		}
		mean = sum / n;
		if (medianFinder.size() < 1)
			return;
		Collections.sort(medianFinder);
		median = ((medianFinder.get((int) (n / 2)) + medianFinder
				.get((int) ((n - 1) / 2))) / 2);
		min = medianFinder.get(0);
		max = medianFinder.get(medianFinder.size() - 1);
		// mode = findMode(medianFinder);

		standardDeviation = (float) Math.sqrt((sumOfSquares - sum * sum / n)
				/ n);
		range = max - min;

		dataQuality = (float) n / data.size();
		float lowThird = (mean - percentile * standardDeviation);
		emin = lowThird < min ? min : lowThird;
		float highThird = (mean + percentile * standardDeviation);
		emax = highThird > max ? max : highThird;
		// round our numbers to 4 sig fig
		BigDecimal bd = new BigDecimal(emin);
		bd = bd.round(new MathContext(4));
		emin = bd.floatValue();
		bd = new BigDecimal(emax);
		bd = bd.round(new MathContext(4));
		emax = bd.floatValue();

	}