@Override public final String toString() { return getClass().getSimpleName() + "(size=" + size() + ",pageSize=" + pageSize() + ")"; }
final int lastPageSize(long size) { final int sz = indexInPage(size); return sz == 0 ? pageSize() : sz; }
protected final void fillPages() { final int numPages = numBlocks(size, pageSize()); for (int i = 0; i < numPages; ++i) { // do not allocate for more entries than necessary on the last page final int valueCount = i == numPages - 1 ? lastPageSize(size) : pageSize(); subMutables[i] = newMutable(valueCount, bitsPerValue); } }
/** Create a new copy of size <code>newSize</code> based on the content of * this buffer. This method is much more efficient than creating a new * instance and copying values one by one. */ public final T resize(long newSize) { final T copy = newUnfilledCopy(newSize); final int numCommonPages = Math.min(copy.subMutables.length, subMutables.length); final long[] copyBuffer = new long[1024]; for (int i = 0; i < copy.subMutables.length; ++i) { final int valueCount = i == copy.subMutables.length - 1 ? lastPageSize(newSize) : pageSize(); final int bpv = i < numCommonPages ? subMutables[i].getBitsPerValue() : this.bitsPerValue; copy.subMutables[i] = newMutable(valueCount, bpv); if (i < numCommonPages) { final int copyLength = Math.min(valueCount, subMutables[i].size()); PackedInts.copy(subMutables[i], 0, copy.subMutables[i], 0, copyLength, copyBuffer); } } return copy; }
final int lastPageSize(long size) { final int sz = indexInPage(size); return sz == 0 ? pageSize() : sz; }
final int lastPageSize(long size) { final int sz = indexInPage(size); return sz == 0 ? pageSize() : sz; }
@Override public final String toString() { return getClass().getSimpleName() + "(size=" + size() + ",pageSize=" + pageSize() + ")"; }
@Override public final String toString() { return getClass().getSimpleName() + "(size=" + size() + ",pageSize=" + pageSize() + ")"; }
final int lastPageSize(long size) { final int sz = indexInPage(size); return sz == 0 ? pageSize() : sz; }
@Override public final String toString() { return getClass().getSimpleName() + "(size=" + size() + ",pageSize=" + pageSize() + ")"; }
protected final void fillPages() { final int numPages = numBlocks(size, pageSize()); for (int i = 0; i < numPages; ++i) { // do not allocate for more entries than necessary on the last page final int valueCount = i == numPages - 1 ? lastPageSize(size) : pageSize(); subMutables[i] = newMutable(valueCount, bitsPerValue); } }
protected final void fillPages() { final int numPages = numBlocks(size, pageSize()); for (int i = 0; i < numPages; ++i) { // do not allocate for more entries than necessary on the last page final int valueCount = i == numPages - 1 ? lastPageSize(size) : pageSize(); subMutables[i] = newMutable(valueCount, bitsPerValue); } }
protected final void fillPages() { final int numPages = numBlocks(size, pageSize()); for (int i = 0; i < numPages; ++i) { // do not allocate for more entries than necessary on the last page final int valueCount = i == numPages - 1 ? lastPageSize(size) : pageSize(); subMutables[i] = newMutable(valueCount, bitsPerValue); } }
/** Create a new copy of size <code>newSize</code> based on the content of * this buffer. This method is much more efficient than creating a new * instance and copying values one by one. */ public final T resize(long newSize) { final T copy = newUnfilledCopy(newSize); final int numCommonPages = Math.min(copy.subMutables.length, subMutables.length); final long[] copyBuffer = new long[1024]; for (int i = 0; i < copy.subMutables.length; ++i) { final int valueCount = i == copy.subMutables.length - 1 ? lastPageSize(newSize) : pageSize(); final int bpv = i < numCommonPages ? subMutables[i].getBitsPerValue() : this.bitsPerValue; copy.subMutables[i] = newMutable(valueCount, bpv); if (i < numCommonPages) { final int copyLength = Math.min(valueCount, subMutables[i].size()); PackedInts.copy(subMutables[i], 0, copy.subMutables[i], 0, copyLength, copyBuffer); } } return copy; }
/** Create a new copy of size <code>newSize</code> based on the content of * this buffer. This method is much more efficient than creating a new * instance and copying values one by one. */ public final T resize(long newSize) { final T copy = newUnfilledCopy(newSize); final int numCommonPages = Math.min(copy.subMutables.length, subMutables.length); final long[] copyBuffer = new long[1024]; for (int i = 0; i < copy.subMutables.length; ++i) { final int valueCount = i == copy.subMutables.length - 1 ? lastPageSize(newSize) : pageSize(); final int bpv = i < numCommonPages ? subMutables[i].getBitsPerValue() : this.bitsPerValue; copy.subMutables[i] = newMutable(valueCount, bpv); if (i < numCommonPages) { final int copyLength = Math.min(valueCount, subMutables[i].size()); PackedInts.copy(subMutables[i], 0, copy.subMutables[i], 0, copyLength, copyBuffer); } } return copy; }
/** Create a new copy of size <code>newSize</code> based on the content of * this buffer. This method is much more efficient than creating a new * instance and copying values one by one. */ public final T resize(long newSize) { final T copy = newUnfilledCopy(newSize); final int numCommonPages = Math.min(copy.subMutables.length, subMutables.length); final long[] copyBuffer = new long[1024]; for (int i = 0; i < copy.subMutables.length; ++i) { final int valueCount = i == copy.subMutables.length - 1 ? lastPageSize(newSize) : pageSize(); final int bpv = i < numCommonPages ? subMutables[i].getBitsPerValue() : this.bitsPerValue; copy.subMutables[i] = newMutable(valueCount, bpv); if (i < numCommonPages) { final int copyLength = Math.min(valueCount, subMutables[i].size()); PackedInts.copy(subMutables[i], 0, copy.subMutables[i], 0, copyLength, copyBuffer); } } return copy; }