static double doubleSum(Iterable l) { double sum = 0; for (Double i : unnull(l)) if (i != null) sum += i; ret sum; } static double doubleSum(double... l) { double sum = 0; if (l != null) for (double i : l) sum += i; ret sum; } static double doubleSum(Iterable l, IF1_ObjectToDouble f) { double sum = 0; for (a : l) sum += f.get(a); ret sum; } static double doubleSum(Iterable l, S field) { double sum = 0; for (a : l) sum += toDouble(getOpt(a, field)); ret sum; } static double doubleSum(S field, Iterable l) { ret doubleSum(l, field); }