}
@Override
public DocValues getValues(Map context, IndexReader reader) throws IOException {
final DocValues vals1 = p1.getValues(context, reader);
final DocValues vals2 = p2.getValues(context, reader);
return new DocValues() {
@Override
public float floatVal(int doc) {
return (float) doubleVal(doc);
}
@Override
public int intVal(int doc) {
return (int) doubleVal(doc);
}
@Override
public long longVal(int doc) {
return (long) doubleVal(doc);
}
@Override
public double doubleVal(int doc) {
return distance(doc, vals1, vals2);
}
@Override
public String strVal(int doc) {
return Double.toString(doubleVal(doc));
}
@Override
public String toString(int doc) {
StringBuilder sb = new StringBuilder();
sb.append(name()).append('(');
sb.append(vals1.toString(doc)).append(',').append(vals2.toString(doc));
sb.append(')');
return sb.toString();
}
};
}