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 }