Package com.googlecode.javaewah
Class LongArray
- java.lang.Object
-
- com.googlecode.javaewah.LongArray
-
-
Field Summary
Fields Modifier and Type Field 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 dataLongArray
clone()
Creates and returns a copy of the buffervoid
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 necessaryvoid
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 bufferlong
getWord(int position)
Returns the word at a given positionvoid
negateWord(int position)
Negates the word at the given position in the buffervoid
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(long word)
Appends the specified word to the end of the buffervoid
push_back(Buffer buffer, int start, int number)
Appends the specified buffer words to the end of the buffer.void
removeLastWord()
Removes the last word from the bufferprivate 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 wordsvoid
swap(Buffer other)
Swap the content of the buffer with another.void
trim()
Reduces the internal buffer to its minimal allowable size.
-
-
-
Field Detail
-
actualSizeInWords
private int actualSizeInWords
The actual size in words.
-
buffer
private long[] buffer
The buffer (array of 64-bit words)
-
DEFAULT_BUFFER_SIZE
private static final int DEFAULT_BUFFER_SIZE
The Constant DEFAULT_BUFFER_SIZE: default memory allocation when the object is constructed.- See Also:
- Constant Field Values
-
-
Method Detail
-
sizeInWords
public int sizeInWords()
Description copied from interface:Buffer
Returns the actual size in words- Specified by:
sizeInWords
in interfaceBuffer
-
ensureCapacity
public void ensureCapacity(int capacity)
Description copied from interface:Buffer
Increases the size of the buffer if necessary- Specified by:
ensureCapacity
in interfaceBuffer
-
getWord
public long getWord(int position)
Description copied from interface:Buffer
Returns the word at a given position
-
getLastWord
public long getLastWord()
Description copied from interface:Buffer
Returns the last word of the buffer- Specified by:
getLastWord
in interfaceBuffer
- Returns:
- the last word
-
clear
public void clear()
Description copied from interface:Buffer
Resets the buffer The buffer is not fully cleared and any new set operations should overwrite stale data
-
trim
public void trim()
Description copied from interface:Buffer
Reduces the internal buffer to its minimal allowable size. This can free memory.
-
setWord
public void setWord(int position, long word)
Description copied from interface:Buffer
Replaces the word at the given position in the buffer with the specified word.
-
setLastWord
public void setLastWord(long word)
Description copied from interface:Buffer
Replaces the last word in the buffer with the specified word.- Specified by:
setLastWord
in interfaceBuffer
-
push_back
public void push_back(long word)
Description copied from interface:Buffer
Appends the specified word to the end of the buffer
-
push_back
public void push_back(Buffer buffer, int start, int number)
Description copied from interface:Buffer
Appends the specified buffer words to the end of the buffer.
-
negative_push_back
public void negative_push_back(Buffer buffer, int start, int number)
Description copied from interface:Buffer
Same as push_back, but the words are negated.- Specified by:
negative_push_back
in interfaceBuffer
- Parameters:
buffer
- the bufferstart
- the position of the first word to addnumber
- the number of words to add
-
removeLastWord
public void removeLastWord()
Description copied from interface:Buffer
Removes the last word from the buffer- Specified by:
removeLastWord
in interfaceBuffer
-
negateWord
public void negateWord(int position)
Description copied from interface:Buffer
Negates the word at the given position in the buffer- Specified by:
negateWord
in interfaceBuffer
-
andWord
public void andWord(int position, long mask)
Description copied from interface:Buffer
Replaces the word at the given position in the buffer with its bitwise-and with the given mask.
-
orWord
public void orWord(int position, long mask)
Description copied from interface:Buffer
Replaces the word at the given position in the buffer with its bitwise-or with the given mask.
-
andLastWord
public void andLastWord(long mask)
Description copied from interface:Buffer
Replaces the last word position in the buffer with its bitwise-and with the given mask.- Specified by:
andLastWord
in interfaceBuffer
-
orLastWord
public void orLastWord(long mask)
Description copied from interface:Buffer
Replaces the last word position in the buffer with its bitwise-or with the given mask.- Specified by:
orLastWord
in interfaceBuffer
-
expand
public void expand(int position, int length)
Description copied from interface:Buffer
Expands the buffer by adding the given number of words at the given position. The added words may contain stale data.
-
collapse
public void collapse(int position, int length)
Description copied from interface:Buffer
Removes a given number of words at the given position in the buffer. The freed words at the end of the buffer are properly cleaned.
-
clone
public LongArray clone()
Description copied from interface:Buffer
Creates and returns a copy of the buffer
-
swap
public void swap(Buffer other)
Description copied from interface:Buffer
Swap the content of the buffer with another.
-
resizeBuffer
private void resizeBuffer(int number)
Resizes the buffer if the number of words to add exceeds the buffer capacity.- Parameters:
number
- the number of words to add
-
newSizeInWords
private int newSizeInWords(int number)
Returns the resulting buffer size in words given the number of words to add.- Parameters:
number
- the number of words to add
-
-