// find best threshold value to separate list1 (smaller values) from list2 (bigger values), minimizing false positives + false negatives // returns (threshold, false positives, false negatives) static T3 findThreshold_unmoved(Cl list1, Cl list2) { if (empty(list1) || empty(list2)) null; double threshold = avg(doubleMax(list1), doubleMin(list2)); int falsePositives = countPred(list1, d -> d > threshold); int falseNegatives = countPred(list2, d -> d <= threshold); ret t3(threshold, falsePositives, falseNegatives); }