UpdateDoublesSketch downSampleInternal(final DoublesSketch srcSketch, final int smallerK, final WritableMemory dstMem) { final UpdateDoublesSketch newSketch = (dstMem == null) ? HeapUpdateDoublesSketch.newInstance(smallerK) : DirectUpdateDoublesSketch.newInstance(smallerK, dstMem); if (srcSketch.isEmpty()) { return newSketch; } DoublesMergeImpl.downSamplingMergeInto(srcSketch, newSketch); return newSketch; }
@Test(expectedExceptions = SketchesArgumentException.class) public void testDownSamplingExceptions1() { UpdateDoublesSketch qs1 = DoublesSketch.builder().setK(4).build(); // not smaller DoublesSketch qs2 = DoublesSketch.builder().setK(3).build(); DoublesMergeImpl.mergeInto(qs2, qs1); }
DoublesMergeImpl.mergeInto(other, myQS); ret = myQS; final UpdateDoublesSketch tmp = DoublesSketch.builder().setK(other.getK()).build(); DoublesMergeImpl.downSamplingMergeInto(myQS, tmp); //myData -> tmp ret = (myQS.isDirect()) ? DoublesSketch.builder().setK(other.getK()).build(myQS.getMemory()) : DoublesSketch.builder().setK(other.getK()).build(); DoublesMergeImpl.mergeInto(tmp, ret); DoublesMergeImpl.mergeInto(other, ret);
for (int srcLvl = 0; srcBitPattern != 0L; srcLvl++, srcBitPattern >>>= 1) { if ((srcBitPattern & 1L) > 0L) { justZipWithStride( srcSketchBuf.setLevel(srcLvl), downScratchKAcc,
DoublesMergeImpl.mergeInto(other, myQS); ret = myQS; final UpdateDoublesSketch tmp = DoublesSketch.builder().setK(other.getK()).build(); DoublesMergeImpl.downSamplingMergeInto(myQS, tmp); //myData -> tmp ret = (myQS.isDirect()) ? DoublesSketch.builder().setK(other.getK()).build(myQS.getMemory()) : DoublesSketch.builder().setK(other.getK()).build(); DoublesMergeImpl.mergeInto(tmp, ret); DoublesMergeImpl.mergeInto(other, ret);
for (int srcLvl = 0; srcBitPattern != 0L; srcLvl++, srcBitPattern >>>= 1) { if ((srcBitPattern & 1L) > 0L) { justZipWithStride( srcSketchBuf.setLevel(srcLvl), downScratchKAcc,
@Test public void testDownSampling4() { for (int n1 = 0; n1 < 50; n1++ ) { HeapUpdateDoublesSketch bigSketch = HeapUpdateDoublesSketch.newInstance(8); for (int i1 = 1; i1 <= n1; i1++ ) { bigSketch.update(i1); } for (int n2 = 0; n2 < 50; n2++ ) { HeapUpdateDoublesSketch directSketch = HeapUpdateDoublesSketch.newInstance(2); for (int i1 = 1; i1 <= n1; i1++ ) { directSketch.update(i1); } for (int i2 = 1; i2 <= n2; i2++ ) { directSketch.update(i2); } HeapUpdateDoublesSketch smlSketch = HeapUpdateDoublesSketch.newInstance(2); for (int i2 = 1; i2 <= n2; i2++ ) { smlSketch.update(i2); } DoublesMergeImpl.downSamplingMergeInto(bigSketch, smlSketch); assertTrue (sameStructurePredicate(directSketch, smlSketch)); } } }
@Test(expectedExceptions = SketchesArgumentException.class) public void testDownSamplingExceptions2() { UpdateDoublesSketch qs1 = DoublesSketch.builder().setK(4).build(); DoublesSketch qs2 = DoublesSketch.builder().setK(7).build(); // 7/4 not pwr of 2 DoublesMergeImpl.mergeInto(qs2, qs1); }
downSamplingMergeInto(src, tgt); return;
@Test(expectedExceptions = SketchesArgumentException.class) public void testDownSamplingExceptions3() { UpdateDoublesSketch qs1 = DoublesSketch.builder().setK(4).build(); DoublesSketch qs2 = DoublesSketch.builder().setK(12).build(); // 12/4 not pwr of 2 DoublesMergeImpl.mergeInto(qs2, qs1); }
UpdateDoublesSketch downSampleInternal(final DoublesSketch srcSketch, final int smallerK, final WritableMemory dstMem) { final UpdateDoublesSketch newSketch = (dstMem == null) ? HeapUpdateDoublesSketch.newInstance(smallerK) : DirectUpdateDoublesSketch.newInstance(smallerK, dstMem); if (srcSketch.isEmpty()) { return newSketch; } DoublesMergeImpl.downSamplingMergeInto(srcSketch, newSketch); return newSketch; }
downSamplingMergeInto(src, tgt); return;