Modifier and Type | Field and Description |
---|---|
private int |
actualSizeInWords
The actual size in words.
|
private long[] |
buffer
The buffer (array of 64-bit words)
|
private static int |
DEFAULT_BUFFER_SIZE
The Constant DEFAULT_BUFFER_SIZE: default memory allocation when the
object is constructed.
|
Constructor and Description |
---|
LongArray()
Creates a buffer with default size
|
LongArray(int bufferSize)
Creates a buffer with explicit size
|
Modifier and Type | Method and Description |
---|---|
void |
andLastWord(long mask)
Replaces the last word position in the buffer
with its bitwise-and with the given mask.
|
void |
andWord(int position,
long mask)
Replaces the word at the given position in the buffer
with its bitwise-and with the given mask.
|
void |
clear()
Resets the buffer
The buffer is not fully cleared and any new set operations should
overwrite stale data
|
LongArray |
clone()
Creates and returns a copy of the buffer
|
void |
collapse(int position,
int length)
Removes a given number of words at the given position in the buffer.
|
void |
ensureCapacity(int capacity)
Increases the size of the buffer if necessary
|
void |
expand(int position,
int length)
Expands the buffer by adding the given number of words at the given position.
|
long |
getLastWord()
Returns the last word of the buffer
|
long |
getWord(int position)
Returns the word at a given position
|
void |
negateWord(int position)
Negates the word at the given position in the buffer
|
void |
negative_push_back(Buffer buffer,
int start,
int number)
Same as push_back, but the words are negated.
|
private int |
newSizeInWords(int number)
Returns the resulting buffer size in words given the number of words to add.
|
void |
orLastWord(long mask)
Replaces the last word position in the buffer
with its bitwise-or with the given mask.
|
void |
orWord(int position,
long mask)
Replaces the word at the given position in the buffer
with its bitwise-or with the given mask.
|
void |
push_back(Buffer buffer,
int start,
int number)
Appends the specified buffer words to the end of the buffer.
|
void |
push_back(long word)
Appends the specified word to the end of the buffer
|
void |
removeLastWord()
Removes the last word from the buffer
|
private void |
resizeBuffer(int number)
Resizes the buffer if the number of words to add exceeds the buffer capacity.
|
void |
setLastWord(long word)
Replaces the last word in the buffer with
the specified word.
|
void |
setWord(int position,
long word)
Replaces the word at the given position in the buffer with
the specified word.
|
int |
sizeInWords()
Returns the actual size in words
|
void |
swap(Buffer other)
Swap the content of the buffer with another.
|
void |
trim()
Reduces the internal buffer to its minimal allowable size.
|
private int actualSizeInWords
private long[] buffer
private static final int DEFAULT_BUFFER_SIZE
public LongArray()
public LongArray(int bufferSize)
bufferSize
- public int sizeInWords()
Buffer
sizeInWords
in interface Buffer
public void ensureCapacity(int capacity)
Buffer
ensureCapacity
in interface Buffer
public long getWord(int position)
Buffer
public long getLastWord()
Buffer
getLastWord
in interface Buffer
public void clear()
Buffer
public void trim()
Buffer
public void setWord(int position, long word)
Buffer
public void setLastWord(long word)
Buffer
setLastWord
in interface Buffer
public void push_back(long word)
Buffer
public void push_back(Buffer buffer, int start, int number)
Buffer
public void negative_push_back(Buffer buffer, int start, int number)
Buffer
negative_push_back
in interface Buffer
buffer
- the bufferstart
- the position of the first word to addnumber
- the number of words to addpublic void removeLastWord()
Buffer
removeLastWord
in interface Buffer
public void negateWord(int position)
Buffer
negateWord
in interface Buffer
public void andWord(int position, long mask)
Buffer
public void orWord(int position, long mask)
Buffer
public void andLastWord(long mask)
Buffer
andLastWord
in interface Buffer
public void orLastWord(long mask)
Buffer
orLastWord
in interface Buffer
public void expand(int position, int length)
Buffer
public void collapse(int position, int length)
Buffer
public LongArray clone()
Buffer
public void swap(Buffer other)
Buffer
private void resizeBuffer(int number)
number
- the number of words to addprivate int newSizeInWords(int number)
number
- the number of words to add