crf, eval, iterationsOption.value, gaussianVarianceOption.value, numResets.value);
}
else if (learningOption.value.equalsIgnoreCase("pr")) {
ArrayList<PRConstraint> constraintsList = new ArrayList<PRConstraint>();
if (penaltyOption.value.equalsIgnoreCase("l2")) {
OneLabelL2IndPRConstraints prConstraints = new OneLabelL2IndPRConstraints(true);
for (int fi : constraints.keySet()) {
double[][] dist = constraints.get(fi);
for (int li = 0; li < dist.length; li++) {
if (!Double.isInfinite(dist[li][0]) && !Maths.almostEquals(dist[li][0],dist[li][1])) {
throw new RuntimeException("Support for range constraints in PR in development. "
+ penaltyOption.value);
}
if (!Double.isInfinite(dist[li][0])) {
prConstraints.addConstraint(fi, li, dist[li][0], qGaussianVarianceOption.value);
}
}
}
constraintsList.add(prConstraints);
}