@Override public DoublesSketch compute(final Map<String, Object> combinedAggregators) { final ArrayOfDoublesSketch sketch = (ArrayOfDoublesSketch) getField().compute(combinedAggregators); final UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(); final ArrayOfDoublesSketchIterator it = sketch.iterator(); while (it.next()) { qs.update(it.getValues()[column - 1]); // convert 1-based column number to zero-based index } return qs; }
@Override public synchronized void aggregate() { final DoublesSketch sketch = selector.getObject(); if (sketch == null) { return; } union.update(sketch); }
@Override public byte[] toBytes(final DoublesSketch sketch) { if (sketch == null || sketch.isEmpty()) { return ByteArrays.EMPTY_ARRAY; } return sketch.toByteArray(true); }
@Override public Object compute(final Map<String, Object> combinedAggregators) { final DoublesSketch sketch = (DoublesSketch) field.compute(combinedAggregators); final double[] histogram = sketch.getPMF(splitPoints); for (int i = 0; i < histogram.length; i++) { histogram[i] *= sketch.getN(); } return histogram; }
@Override public synchronized Object get() { return union.getResult(); }
@Override public Object finalizeComputation(final Object object) { return ((DoublesSketch) object).getN(); }
@Override public Object compute(final Map<String, Object> combinedAggregators) { final DoublesSketch sketch = (DoublesSketch) field.compute(combinedAggregators); return sketch.getQuantiles(fractions); }
@Override public synchronized void aggregate() { sketch.update(valueSelector.getDouble()); }
@Override public Object compute(final Map<String, Object> combinedAggregators) { final DoublesSketch sketch = (DoublesSketch) field.compute(combinedAggregators); return sketch.getQuantile(fraction); }
@Override public int getMaxIntermediateSize() { return DoublesSketch.getUpdatableStorageBytes(k, MAX_STREAM_LENGTH); }
@Override public void reset(final ColumnValueSelector selector) { union.reset(); fold(selector); }
@Override public Object compute(final Map<String, Object> combinedAggregators) { final DoublesSketch sketch = (DoublesSketch) field.compute(combinedAggregators); return sketch.toString(); }
@Override public synchronized void init(final ByteBuffer buffer, final int position) { final WritableMemory mem = getMemory(buffer); final WritableMemory region = mem.writableRegion(position, maxIntermediateSize); final DoublesUnion union = DoublesUnion.builder().setMaxK(k).build(region); putUnion(buffer, position, union); }
@Override public synchronized void init(final ByteBuffer buffer, final int position) { final WritableMemory mem = getMemory(buffer); final WritableMemory region = mem.writableRegion(position, maxIntermediateSize); final UpdateDoublesSketch sketch = DoublesSketch.builder().setK(size).build(region); putSketch(buffer, position, sketch); }
@Override public void fold(final ColumnValueSelector selector) { final DoublesSketch sketch = (DoublesSketch) selector.getObject(); union.update(sketch); }
@Nullable @Override public DoublesSketch getObject() { return union.getResult(); }