org.jmol.util
Class FastBitSet
java.lang.Object
org.jmol.util.FastBitSet
- All Implemented Interfaces:
- java.lang.Cloneable
public class FastBitSet
- extends java.lang.Object
- implements java.lang.Cloneable
Method Summary |
static FastBitSet |
allocateBitmap(int bitCount)
|
void |
and(FastBitSet setAnd)
|
void |
andNot(FastBitSet setAndNot)
|
private static void |
bitmapAnd(int[] bitmap,
int[] bitmapAnd)
|
private static void |
bitmapAndNot(int[] bitmap,
int[] bitmapAndNot)
|
private static void |
bitmapClear(int[] bitmap)
|
private static void |
bitmapClearBit(int[] bitmap,
int i)
|
private static void |
bitmapClearRange(int[] bitmap,
int iStart,
int bitCount)
|
private static boolean |
bitmapGetBit(int[] bitmap,
int i)
|
private static int |
bitmapGetCardinality(int[] bitmap)
|
private static int |
bitmapGetMinimumWordCount(int[] bitmap)
|
private static int |
bitmapGetSizeInBits(int[] bitmap)
|
private static boolean |
bitmapIsEmpty(int[] bitmap)
|
private static boolean |
bitmapIsEqual(int[] bitmap1,
int[] bitmap2)
|
private static int |
bitmapNextSetBit(int[] bitmap,
int fromIndex)
|
private static void |
bitmapOr(int[] bitmap,
int[] bitmapOr)
|
private static void |
bitmapSetBit(int[] bitmap,
int i)
|
private static void |
bitmapSetRange(int[] bitmap,
int iStart,
int bitCount)
|
private static void |
bitmapXor(int[] bitmap,
int[] bitmapXor)
|
int |
cardinality()
|
int |
cardinality(int max)
|
void |
clear()
|
void |
clear(int bitIndex)
|
void |
clear(int fromIndex,
int toIndex)
|
java.lang.Object |
clone()
|
private static int |
countBitsInWord(int word)
|
private static int[] |
ensureSufficientBits(int[] bitmap,
int minimumBitCount)
|
private static int[] |
ensureSufficientWords(int[] bitmap,
int minimumWordCount)
|
boolean |
equals(java.lang.Object obj)
|
void |
flip(int bitIndex)
|
void |
flip(int fromIndex,
int toIndex)
|
boolean |
get(int bitIndex)
|
static FastBitSet |
getEmptySet()
|
private static int |
getWordCountFromBitCount(int bitCount)
|
int |
hashCode()
|
boolean |
isEmpty()
|
int |
length()
|
int |
nextSetBit(int fromIndex)
|
private static int |
numberOfLeadingZeros(int i)
|
void |
or(FastBitSet setOr)
|
void |
set(int bitIndex)
|
void |
set(int bitIndex,
boolean value)
|
void |
set(int fromIndex,
int toIndex)
|
void |
set(int fromIndex,
int toIndex,
boolean value)
|
int |
size()
|
java.util.BitSet |
toBitSet()
|
java.lang.String |
toString()
|
void |
xor(FastBitSet setXor)
|
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
bitmap
private int[] bitmap
emptyBitmap
private static final int[] emptyBitmap
emptySet
public static final FastBitSet emptySet
F_ADDRESS_BITS_PER_WORD
private static final int F_ADDRESS_BITS_PER_WORD
- miguel 8 Feb 2010
Below are implementations of bitmap functionality on top of arrays. Around
2002 I chose to go with int[] instead of long[] because I felt it would
give better performance on contemporary hardware. I think that is probably
still the case. At some point over the next few years this can be changed
to long[].
Since these methods are marked private final static the compiler can make
easy/good decisions about which ones to open code inline.
- See Also:
- Constant Field Values
F_BITS_PER_WORD
private static final int F_BITS_PER_WORD
- See Also:
- Constant Field Values
F_BIT_INDEX_MASK
private static final int F_BIT_INDEX_MASK
- See Also:
- Constant Field Values
F_INT_ALL_BITS_SET
private static final int F_INT_ALL_BITS_SET
- See Also:
- Constant Field Values
FastBitSet
public FastBitSet()
FastBitSet
private FastBitSet(int bitCount)
FastBitSet
public FastBitSet(FastBitSet bitsetToCopy)
getEmptySet
public static final FastBitSet getEmptySet()
allocateBitmap
public static FastBitSet allocateBitmap(int bitCount)
and
public void and(FastBitSet setAnd)
andNot
public void andNot(FastBitSet setAndNot)
cardinality
public int cardinality()
cardinality
public int cardinality(int max)
- Parameters:
max
-
- Returns:
- n bits below max
clear
public void clear()
clear
public void clear(int bitIndex)
clear
public void clear(int fromIndex,
int toIndex)
clone
public java.lang.Object clone()
- Overrides:
clone
in class java.lang.Object
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in class java.lang.Object
flip
public void flip(int bitIndex)
flip
public void flip(int fromIndex,
int toIndex)
get
public boolean get(int bitIndex)
isEmpty
public boolean isEmpty()
length
public int length()
nextSetBit
public int nextSetBit(int fromIndex)
or
public void or(FastBitSet setOr)
set
public void set(int bitIndex)
set
public void set(int bitIndex,
boolean value)
set
public void set(int fromIndex,
int toIndex)
set
public void set(int fromIndex,
int toIndex,
boolean value)
size
public int size()
xor
public void xor(FastBitSet setXor)
toBitSet
public java.util.BitSet toBitSet()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
hashCode
public int hashCode()
- Overrides:
hashCode
in class java.lang.Object
bitmapGetBit
private static final boolean bitmapGetBit(int[] bitmap,
int i)
bitmapSetBit
private static final void bitmapSetBit(int[] bitmap,
int i)
bitmapClearBit
private static final void bitmapClearBit(int[] bitmap,
int i)
bitmapSetRange
private static final void bitmapSetRange(int[] bitmap,
int iStart,
int bitCount)
bitmapClearRange
private static final void bitmapClearRange(int[] bitmap,
int iStart,
int bitCount)
bitmapClear
private static final void bitmapClear(int[] bitmap)
bitmapGetMinimumWordCount
private static final int bitmapGetMinimumWordCount(int[] bitmap)
bitmapGetSizeInBits
private static final int bitmapGetSizeInBits(int[] bitmap)
getWordCountFromBitCount
private static final int getWordCountFromBitCount(int bitCount)
bitmapAnd
private static final void bitmapAnd(int[] bitmap,
int[] bitmapAnd)
bitmapAndNot
private static final void bitmapAndNot(int[] bitmap,
int[] bitmapAndNot)
bitmapOr
private static final void bitmapOr(int[] bitmap,
int[] bitmapOr)
bitmapXor
private static final void bitmapXor(int[] bitmap,
int[] bitmapXor)
bitmapNextSetBit
private static final int bitmapNextSetBit(int[] bitmap,
int fromIndex)
bitmapGetCardinality
private static final int bitmapGetCardinality(int[] bitmap)
countBitsInWord
private static final int countBitsInWord(int word)
bitmapIsEqual
private static final boolean bitmapIsEqual(int[] bitmap1,
int[] bitmap2)
bitmapIsEmpty
private static final boolean bitmapIsEmpty(int[] bitmap)
numberOfLeadingZeros
private static final int numberOfLeadingZeros(int i)
ensureSufficientBits
private static final int[] ensureSufficientBits(int[] bitmap,
int minimumBitCount)
ensureSufficientWords
private static final int[] ensureSufficientWords(int[] bitmap,
int minimumWordCount)