public static double evaluate(double[] v) throws EvaluationException {if (v.length < 2) {throw new EvaluationException(ErrorEval.NA);}int[] counts = new int[v.length];Arrays.fill(counts, 1);for (int i = 0, iSize = v.length; i < iSize; i++) {for (int j = i + 1, jSize = v.length; j < jSize; j++) {if (v[i] == v[j])counts[i]++;}}double maxv = 0;int maxc = 0;for (int i = 0, iSize = counts.length; i < iSize; i++) {if (counts[i] > maxc) {maxv = v[i];maxc = counts[i];}}if (maxc > 1) {return maxv;}throw new EvaluationException(ErrorEval.NA);}