@Override public double increment(long index, double inc) { return in.increment(index, inc); }
@Override public void collect(int doc, long bucket) throws IOException { sums = bigArrays.grow(sums, bucket + 1); values.setDocument(doc); final int valuesCount = values.count(); double sum = 0; for (int i = 0; i < valuesCount; i++) { sum += values.valueAt(i); } sums.increment(bucket, sum); } };
@Override public void collect(int doc, long bucket) throws IOException { sums = bigArrays.grow(sums, bucket + 1); values.setDocument(doc); final int valuesCount = values.count(); double sum = 0; for (int i = 0; i < valuesCount; i++) { sum += values.valueAt(i); } sums.increment(bucket, sum); } };
@Override public void collect(int doc, long bucket) throws IOException { counts = bigArrays.grow(counts, bucket + 1); sums = bigArrays.grow(sums, bucket + 1); values.setDocument(doc); final int valueCount = values.count(); counts.increment(bucket, valueCount); double sum = 0; for (int i = 0; i < valueCount; i++) { sum += values.valueAt(i); } sums.increment(bucket, sum); } };
@Override public void collect(int doc, long bucket) throws IOException { counts = bigArrays.grow(counts, bucket + 1); sums = bigArrays.grow(sums, bucket + 1); values.setDocument(doc); final int valueCount = values.count(); counts.increment(bucket, valueCount); double sum = 0; for (int i = 0; i < valueCount; i++) { sum += values.valueAt(i); } sums.increment(bucket, sum); } };
@Override public void collect(int doc, long bucket) throws IOException { if (bucket >= counts.size()) { final long from = counts.size(); final long overSize = BigArrays.overSize(bucket + 1); counts = bigArrays.resize(counts, overSize); sums = bigArrays.resize(sums, overSize); mins = bigArrays.resize(mins, overSize); maxes = bigArrays.resize(maxes, overSize); mins.fill(from, overSize, Double.POSITIVE_INFINITY); maxes.fill(from, overSize, Double.NEGATIVE_INFINITY); } values.setDocument(doc); final int valuesCount = values.count(); counts.increment(bucket, valuesCount); double sum = 0; double min = mins.get(bucket); double max = maxes.get(bucket); for (int i = 0; i < valuesCount; i++) { double value = values.valueAt(i); sum += value; min = Math.min(min, value); max = Math.max(max, value); } sums.increment(bucket, sum); mins.set(bucket, min); maxes.set(bucket, max); } };
@Override public void collect(int doc, long bucket) throws IOException { if (bucket >= counts.size()) { final long from = counts.size(); final long overSize = BigArrays.overSize(bucket + 1); counts = bigArrays.resize(counts, overSize); sums = bigArrays.resize(sums, overSize); mins = bigArrays.resize(mins, overSize); maxes = bigArrays.resize(maxes, overSize); mins.fill(from, overSize, Double.POSITIVE_INFINITY); maxes.fill(from, overSize, Double.NEGATIVE_INFINITY); } values.setDocument(doc); final int valuesCount = values.count(); counts.increment(bucket, valuesCount); double sum = 0; double min = mins.get(bucket); double max = maxes.get(bucket); for (int i = 0; i < valuesCount; i++) { double value = values.valueAt(i); sum += value; min = Math.min(min, value); max = Math.max(max, value); } sums.increment(bucket, sum); mins.set(bucket, min); maxes.set(bucket, max); } };