00001 package edu.stanford.hci.r3.util;
00002
00014 public class MathUtils {
00015
00022 public static double average(double... vals) {
00023 if (vals == null || vals.length == 0) {
00024 return 0;
00025 }
00026 return sum(vals) / vals.length;
00027 }
00028
00036 public static double distance(double x1, double y1, double x2, double y2) {
00037 return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
00038 }
00039
00044 public static int rint(double val) {
00045 return (int) Math.round(val);
00046 }
00047
00054 public static double standardDeviation(double... vals) {
00055 if (vals == null || vals.length == 0) {
00056 return 0;
00057 }
00058
00059 final double mean = average(vals);
00060 double variance = 0;
00061 for (double val : vals) {
00062 variance += Math.pow((val - mean), 2);
00063 }
00064 return Math.sqrt(variance / vals.length);
00065 }
00066
00071 public static double standardDeviation(Double... vals) {
00072 double[] valsArray = new double[vals.length];
00073 for (int i = 0; i < valsArray.length; i++) {
00074 valsArray[i] = vals[i];
00075 }
00076 return standardDeviation(valsArray);
00077 }
00078
00083 private static double sum(double... vals) {
00084 double sum = 0;
00085 for (double val : vals) {
00086 sum += val;
00087 }
00088 return sum;
00089 }
00090 }