private int getTreeDepth() { // First +1 because all the non-leave nodes makes another power // of 2; e.g. to have a fully balanced tree with 4 leaves you // need a depth=3 tree: // Second +1 because MathUtil.log computes floor of the logarithm; e.g. // with 5 leaves you need a depth=4 tree: return MathUtil.log(numLeaves, 2) + 2; }
gcd = MathUtil.gcd(gcd, v - minMax.min);
gcd = MathUtil.gcd(gcd, v - minValue);
/** Creates a {@code MultiLevelSkipListWriter}. */ protected MultiLevelSkipListWriter(int skipInterval, int skipMultiplier, int maxSkipLevels, int df) { this.skipInterval = skipInterval; this.skipMultiplier = skipMultiplier; // calculate the maximum number of skip levels for this document frequency if (df <= skipInterval) { numberOfSkipLevels = 1; } else { numberOfSkipLevels = 1+MathUtil.log(df/skipInterval, skipMultiplier); } // make sure it does not exceed maxSkipLevels if (numberOfSkipLevels > maxSkipLevels) { numberOfSkipLevels = maxSkipLevels; } }
gcd = MathUtil.gcd(gcd, v - minValue);
@Override public final void sort(int from, int to) { checkRange(from, to); quicksort(from, to, 2 * MathUtil.log(to - from, 2)); }
gcd = MathUtil.gcd(gcd, v - minValue);
@Override public final void select(int from, int to, int k) { checkArgs(from, to, k); final int maxDepth = 2 * MathUtil.log(to - from, 2); quickSelect(from, to, k, maxDepth); }
gcd = MathUtil.gcd(gcd, v - minValue);
numberOfSkipLevels = 1; } else { numberOfSkipLevels = 1+MathUtil.log(docCount/skipInterval[0], skipMultiplier);
gcd = MathUtil.gcd(gcd, v - minValue);
private int getTreeDepth() { // First +1 because all the non-leave nodes makes another power // of 2; e.g. to have a fully balanced tree with 4 leaves you // need a depth=3 tree: // Second +1 because MathUtil.log computes floor of the logarithm; e.g. // with 5 leaves you need a depth=4 tree: return MathUtil.log(numLeaves, 2) + 2; }
gcd = MathUtil.gcd(gcd, v - minValue);
/** Creates a {@code MultiLevelSkipListWriter}. */ protected MultiLevelSkipListWriter(int skipInterval, int skipMultiplier, int maxSkipLevels, int df) { this.skipInterval = skipInterval; this.skipMultiplier = skipMultiplier; // calculate the maximum number of skip levels for this document frequency if (df <= skipInterval) { numberOfSkipLevels = 1; } else { numberOfSkipLevels = 1+MathUtil.log(df/skipInterval, skipMultiplier); } // make sure it does not exceed maxSkipLevels if (numberOfSkipLevels > maxSkipLevels) { numberOfSkipLevels = maxSkipLevels; } }
gcd = MathUtil.gcd(gcd, v - minValue);
/** Creates a {@code MultiLevelSkipListWriter}. */ protected MultiLevelSkipListWriter(int skipInterval, int skipMultiplier, int maxSkipLevels, int df) { this.skipInterval = skipInterval; this.skipMultiplier = skipMultiplier; // calculate the maximum number of skip levels for this document frequency if (df <= skipInterval) { numberOfSkipLevels = 1; } else { numberOfSkipLevels = 1+MathUtil.log(df/skipInterval, skipMultiplier); } // make sure it does not exceed maxSkipLevels if (numberOfSkipLevels > maxSkipLevels) { numberOfSkipLevels = maxSkipLevels; } }
gcd = MathUtil.gcd(gcd, v - minValue);
/** Creates a {@code MultiLevelSkipListWriter}. */ protected MultiLevelSkipListWriter(int skipInterval, int skipMultiplier, int maxSkipLevels, int df) { this.skipInterval = skipInterval; this.skipMultiplier = skipMultiplier; // calculate the maximum number of skip levels for this document frequency if (df <= skipInterval) { numberOfSkipLevels = 1; } else { numberOfSkipLevels = 1+MathUtil.log(df/skipInterval, skipMultiplier); } // make sure it does not exceed maxSkipLevels if (numberOfSkipLevels > maxSkipLevels) { numberOfSkipLevels = maxSkipLevels; } }
gcd = MathUtil.gcd(gcd, v - minMax.min);
@Override public final void select(int from, int to, int k) { checkArgs(from, to, k); final int maxDepth = 2 * MathUtil.log(to - from, 2); quickSelect(from, to, k, maxDepth); }