long getNewTheta() { final long[] keys = new long[getRetainedEntries()]; int i = 0; for (int j = 0; j < getCurrentCapacity(); j++) { final long key = getKey(j); if (key != 0) { keys[i++] = key; } } return QuickSelect.select(keys, 0, getRetainedEntries() - 1, getNominalEntries()); }
/** * Returns the resulting union in the form of a compact sketch * @param dstMem memory for the result (can be null) * @return compact sketch representing the union (off-heap if memory is provided) */ public ArrayOfDoublesCompactSketch getResult(final WritableMemory dstMem) { if (sketch_.getRetainedEntries() > sketch_.getNominalEntries()) { theta_ = Math.min(theta_, sketch_.getNewTheta()); } if (dstMem == null) { return new HeapArrayOfDoublesCompactSketch(sketch_, theta_); } return new DirectArrayOfDoublesCompactSketch(sketch_, theta_, dstMem); }
@Override public void trim() { if (getRetainedEntries() > getNominalEntries()) { setThetaLong(getNewTheta()); rebuild(); } }
void rebuildIfNeeded() { if (getRetainedEntries() < rebuildThreshold_) { return; } if (getCurrentCapacity() > getNominalEntries()) { setThetaLong(getNewTheta()); rebuild(); } else { rebuild(getCurrentCapacity() * getResizeFactor().getValue()); } }
final int matchSize = min(sketch_.getRetainedEntries(), sketchIn.getRetainedEntries()); final long[] matchKeys = new long[matchSize]; final double[][] matchValues = new double[matchSize][];
long getNewTheta() { final long[] keys = new long[getRetainedEntries()]; int i = 0; for (int j = 0; j < getCurrentCapacity(); j++) { final long key = getKey(j); if (key != 0) { keys[i++] = key; } } return QuickSelect.select(keys, 0, getRetainedEntries() - 1, getNominalEntries()); }
/** * Returns the resulting union in the form of a compact sketch * @param dstMem memory for the result (can be null) * @return compact sketch representing the union (off-heap if memory is provided) */ public ArrayOfDoublesCompactSketch getResult(final WritableMemory dstMem) { if (sketch_.getRetainedEntries() > sketch_.getNominalEntries()) { theta_ = Math.min(theta_, sketch_.getNewTheta()); } if (dstMem == null) { return new HeapArrayOfDoublesCompactSketch(sketch_, theta_); } return new DirectArrayOfDoublesCompactSketch(sketch_, theta_, dstMem); }
@Override public void trim() { if (getRetainedEntries() > getNominalEntries()) { setThetaLong(getNewTheta()); rebuild(); } }
void rebuildIfNeeded() { if (getRetainedEntries() < rebuildThreshold_) { return; } if (getCurrentCapacity() > getNominalEntries()) { setThetaLong(getNewTheta()); rebuild(); } else { rebuild(getCurrentCapacity() * getResizeFactor().getValue()); } }
final int matchSize = min(sketch_.getRetainedEntries(), sketchIn.getRetainedEntries()); final long[] matchKeys = new long[matchSize]; final double[][] matchValues = new double[matchSize][];