mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 13:09:00 +00:00
Improvements to array library
This commit is contained in:
parent
8168d512b8
commit
e3bea19d4d
@ -18,22 +18,14 @@ public interface IntArrayBase extends BulkTransferArray<IntBuffer> {
|
||||
}
|
||||
}
|
||||
|
||||
default void increment(long pos) {
|
||||
set(pos, get(pos) + 1);
|
||||
}
|
||||
|
||||
default void swap(long pos1, long pos2) {
|
||||
int tmp = get(pos1);
|
||||
set(pos1, get(pos2));
|
||||
set(pos2, tmp);
|
||||
}
|
||||
|
||||
default void swapn(int n, long pos1, long pos2) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
int tmp = get(pos1+i);
|
||||
set(pos1+i, get(pos2+i));
|
||||
set(pos2+i, tmp);
|
||||
}
|
||||
default void increment(long pos) {
|
||||
set(pos, get(pos) + 1);
|
||||
}
|
||||
|
||||
default int getAndIncrement(long pos) {
|
||||
@ -47,6 +39,7 @@ public interface IntArrayBase extends BulkTransferArray<IntBuffer> {
|
||||
set(start+i, buffer.get(i + bufferStart));
|
||||
}
|
||||
}
|
||||
|
||||
default void get(long start, long end, IntBuffer buffer, int bufferStart) {
|
||||
for (int i = 0; i < (end-start); i++) {
|
||||
buffer.put(i + bufferStart, get(start + i));
|
||||
|
@ -28,6 +28,7 @@ public interface LongArrayBase extends BulkTransferArray<LongBuffer> {
|
||||
set(pos2, tmp);
|
||||
}
|
||||
|
||||
/** Behavior not defined for overlapping ranges */
|
||||
default void swapn(int n, long pos1, long pos2) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
long tmp = get(pos1+i);
|
||||
|
@ -114,6 +114,11 @@ public class PagingIntArray extends AbstractPagingArray<IntArrayPage, IntBuffer>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAndIncrement(long pos) {
|
||||
return pages[partitioningScheme.getPage(pos)].getAndIncrement(partitioningScheme.getOffset(pos));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void get(long start, long end, int[] buffer) {
|
||||
if (partitioningScheme.isSamePage(start, end)) {
|
||||
|
@ -119,6 +119,11 @@ public class PagingLongArray extends AbstractPagingArray<LongArrayPage, LongBuff
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getAndIncrement(long pos) {
|
||||
return pages[partitioningScheme.getPage(pos)].getAndIncrement(partitioningScheme.getOffset(pos));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void set(long pos, long value) {
|
||||
int page = partitioningScheme.getPage(pos);
|
||||
|
Loading…
Reference in New Issue
Block a user