package com.github.pfichtner.jrunalyser.base.util; import com.google.common.base.Predicate; public final class Primitives { private Primitives() { super(); } public static int sum(int[] array) { int result = 0; for (int i : array) { result += i; } return result; } public static int avg(int[] ints) { return sum(ints) / ints.length; } // ----------------------------------------------------- public static double sum(double[] doubles) { double result = 0; for (double d : doubles) { result += d; } return result; } public static double sum(double[] doubles, Predicate<Number> predicate) { double sum = 0; double prev = Double.NaN; for (double number : doubles) { if (!Double.isNaN(prev)) { double diff = number - prev; if (predicate.apply(Double.valueOf(diff))) { sum += diff; } } prev = number; } return sum; } public static double avg(double[] doubles) { return sum(doubles) / doubles.length; } // ----------------------------------------------------- }