public PercentileCounter(PercentileCounter another) { this(another.compression, another.quantileRatio); merge(another); }
public static PercentileCounter merge(PercentileCounter counter0, PercentileCounter counter1) { counter0.merge(counter1); return counter0; }
@Override public void aggregate(PercentileCounter value) { if (sum == null) sum = new PercentileCounter(value); else sum.merge(value); }
public static PercentileCounter add(PercentileCounter counter, Object v, Object r) { PercentileCounter c = (PercentileCounter) v; Number n = (Number) r; if (counter == null) { counter = new PercentileCounter(c.compression, n.doubleValue()); } counter.merge(c); return counter; }
@Override public PercentileCounter aggregate(PercentileCounter value1, PercentileCounter value2) { if (value1 == null) { return new PercentileCounter(value2); } else if (value2 == null) { return new PercentileCounter(value1); } PercentileCounter merged = new PercentileCounter(value1); merged.merge(value2); return merged; }
@Test public void testBasic() { PercentileSerializer serializer = new PercentileSerializer(DataType.getType("percentile(100)")); PercentileCounter counter = new PercentileCounter(100, 0.5); Random random = new Random(); for (int i = 0; i < 1000; i++) { counter.add(random.nextDouble()); } double markResult = counter.getResultEstimate(); ByteBuffer buffer = ByteBuffer.allocateDirect(serializer.getStorageBytesEstimate()); serializer.serialize(counter, buffer); buffer.flip(); counter = serializer.deserialize(buffer); PercentileCounter counter1 = new PercentileCounter(100, 0.5); counter1.merge(counter); assertEquals(markResult, counter1.getResultEstimate(), 0.01); }
public PercentileCounter(PercentileCounter another) { this(another.compression, another.quantileRatio); merge(another); }
public static PercentileCounter merge(PercentileCounter counter0, PercentileCounter counter1) { counter0.merge(counter1); return counter0; }
@Override public void aggregate(PercentileCounter value) { if (sum == null) sum = new PercentileCounter(value); else sum.merge(value); }
public static PercentileCounter add(PercentileCounter counter, Object v, Object r) { PercentileCounter c = (PercentileCounter) v; Number n = (Number) r; if (counter == null) { counter = new PercentileCounter(c.compression, n.doubleValue()); } counter.merge(c); return counter; }
@Override public PercentileCounter aggregate(PercentileCounter value1, PercentileCounter value2) { if (value1 == null) { return new PercentileCounter(value2); } else if (value2 == null) { return new PercentileCounter(value1); } PercentileCounter merged = new PercentileCounter(value1); merged.merge(value2); return merged; }