package doser.lucene.query;
/**
* Not in use so far.
*
* @author quh
*/
public class LearnToRankFeatureDefaultValueManager {
private static LearnToRankFeatureDefaultValueManager man;
public static LearnToRankFeatureDefaultValueManager getInstance() {
return man;
}
public static void setInstance(
final LearnToRankFeatureDefaultValueManager manager) {
man = manager;
}
private int amountQueries;
private final float[] maxVals;
private final float[] sums;
public LearnToRankFeatureDefaultValueManager(final int pos) {
maxVals = new float[pos];
sums = new float[pos];
for (int j = 0; j < sums.length; j++) {
sums[j] = 0;
}
amountQueries = 0;
}
public float[] getAverageResults() {
final float[] results = new float[maxVals.length];
for (int i = 0; i < sums.length; i++) {
results[i] = sums[i] / amountQueries;
}
return results;
}
public void newQuery() {
for (int i = 0; i < maxVals.length; i++) {
sums[i] += maxVals[i];
}
amountQueries++;
}
public synchronized void setValue(final int position, final float value) {
if (maxVals[position] < value) {
maxVals[position] = value;
}
}
}