public DoublesSketchBuildAggregator(final ColumnValueSelector<Double> valueSelector, final int size) { this.valueSelector = valueSelector; this.size = size; sketch = DoublesSketch.builder().setK(size).build(); }
try { Double doubleValue = Double.parseDouble(objectString); UpdateDoublesSketch sketch = DoublesSketch.builder().setK(MIN_K).build(); sketch.update(doubleValue); return sketch; UpdateDoublesSketch sketch = DoublesSketch.builder().setK(MIN_K).build(); sketch.update(((Number) object).doubleValue()); return sketch;
@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 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 byte[] toByteArray() { if (gadget_ == null) { return DoublesSketch.builder().setK(maxK_).build().toByteArray(); } return gadget_.toByteArray(); }
@Test public void maxK() { final UpdateDoublesSketch sketch = DoublesSketch.builder().setK(32768).build(); Assert.assertEquals(sketch.getK(), 32768); }
@Test public void checkEmptyNullReturns() { int k = 16; UpdateDoublesSketch uds = DoublesSketch.builder().setK(k).build(); assertNull(uds.getQuantiles(5)); assertNull(uds.getPMF(new double[] { 0, 0.5, 1.0 })); assertNull(uds.getCDF(new double[] { 0, 0.5, 1.0 })); }
static UpdateDoublesSketch buildAndLoadQS(final int k, final int n, final int startV) { final UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(); for (int i = 1; i <= n; i++) { qs.update(startV + i); } return qs; }
static UpdateDoublesSketch buildAndLoadQS(int k, int n, int startV) { UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(); for (int i=1; i<=n; i++) { qs.update(startV + i); } return qs; }
@Test public void checkIsSameResource() { int k = 16; WritableMemory mem = WritableMemory.wrap(new byte[(k*16) +24]); WritableMemory cmem = WritableMemory.wrap(new byte[8]); DirectUpdateDoublesSketch duds = (DirectUpdateDoublesSketch) DoublesSketch.builder().setK(k).build(mem); assertTrue(duds.isSameResource(mem)); DirectCompactDoublesSketch dcds = (DirectCompactDoublesSketch) duds.compact(cmem); assertTrue(dcds.isSameResource(cmem)); UpdateDoublesSketch uds = DoublesSketch.builder().setK(k).build(); assertFalse(uds.isSameResource(mem)); }
@Test public void testIt() { java.nio.ByteBuffer bb = java.nio.ByteBuffer.allocate(1<<20).order(ByteOrder.nativeOrder()); WritableMemory mem = WritableMemory.wrap(bb); int k = 1024; DoublesSketch qsk = new DoublesSketchBuilder().setK(k).build(); DoublesUnion u1 = DoublesUnion.heapify(qsk); u1.getResult().putMemory(mem); DoublesUnion u2 = DoublesUnion.heapify(mem); DoublesSketch qsk2 = u2.getResult(); assertTrue(qsk2.isEmpty()); }
@Test public void checkKisTwo() { int k = 2; UpdateDoublesSketch qs1 = DoublesSketch.builder().setK(k).build(); double err = qs1.getNormalizedRankError(false); assertTrue(err < 1.0); byte[] arr = qs1.toByteArray(true); //8 assertEquals(arr.length, DoublesSketch.getCompactStorageBytes(k, 0)); qs1.update(1.0); arr = qs1.toByteArray(true); //40 assertEquals(arr.length, DoublesSketch.getCompactStorageBytes(k, 1)); }
@Test public void createFromUnsortedUpdateSketch() { final int k = 4; final int n = 13; final UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(); for (int i = n; i > 0; --i) { qs.update(i); } final HeapCompactDoublesSketch compactQs = HeapCompactDoublesSketch.createFromUpdateSketch(qs); // don't expect equal but new base buffer should be sorted checkBaseBufferIsSorted(compactQs); }
@Test public void checkToStringEmpty() { int k = PreambleUtil.DEFAULT_K; DoublesSketch qs = DoublesSketch.builder().setK(k).build(); byte[] byteArr = qs.toByteArray(); println(PreambleUtil.toString(byteArr, true)); }
static UpdateDoublesSketch buildDQS(int k, long n) { int cap = DoublesSketch.getUpdatableStorageBytes(k, n); if (cap < (2 * k)) { cap = 2 * k; } DoublesSketchBuilder bldr = new DoublesSketchBuilder(); bldr.setK(k); UpdateDoublesSketch dqs = bldr.build(WritableMemory.wrap(new byte[cap])); return dqs; }
@Test public void checkToString() { int k = PreambleUtil.DEFAULT_K; int n = 1000000; UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(); for (int i=0; i<n; i++) { qs.update(i); } byte[] byteArr = qs.toByteArray(); DoublesSketch.toString(byteArr); println(DoublesSketch.toString(Memory.wrap(byteArr))); }
static DirectCompactDoublesSketch buildAndLoadDCQS(final int k, final int n, final int startV) { final UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(); for (int i = 1; i <= n; i++) { qs.update(startV + i); } final byte[] byteArr = new byte[qs.getCompactStorageBytes()]; final WritableMemory mem = WritableMemory.wrap(byteArr); return (DirectCompactDoublesSketch) qs.compact(mem); }