MathUtil { public static double sum(final List<? extends Number> list) { double sum = 0; for (Number number : list) { sum += number.doubleValue(); } return sum; }  static double sum(final List<? extends Number> list); static double[] listToArray(final List<? extends Number> list); static double median(final List<Double> list); static double median(final double[] list); static DescriptiveStatistics getStatistics(final List<Double> list); static DescriptiveStatistics getStatistics(final double[] list); static double mean(final List<Double> list); static double variance(final List<Double> list); static double stDev(final List<Double> list); static double mad(final double[] data); static double iqr(final double[] data); static int countNonZeroBeginning(final double[] data); static int countShortestRow(final double[][] data); static double[] trimZeroTail(final double[] data); static double[] getLoessParameterEstimates(final double[] y); static SimpleRegression createLinearRegression(final double[] x,
			final double[] y); static OLSMultipleLinearRegression createLinearRegression(
			final double[][] x, final double[] y); static SimpleRegression createWeigthedLinearRegression(
			final double[] x, final double[] y, final double[] weigths); static double[] getRobustLoessParameterEstimates(final double[] y); static double[] getTricubeWeigts(final int n); static double[] getTricubeBisquareWeigts(final double[] residuals); static double[] abs(final double[] data);  }
@Test public void testSum() { List<Double> data1 = new ArrayList<Double>(); for (Double number : DATA1) { data1.add(number); } assertEquals(SUM1, MathUtil.sum(data1), 0); List<Double> data2 = new ArrayList<Double>(); for (Double number : DATA1) { data2.add(number / 10); } assertEquals(SUM1 / 10, MathUtil.sum(data2), 0); }