org.jmol.util
public final class BitSetUtil extends Object
Constructor and Description |
---|
BitSetUtil() |
Modifier and Type | Method and Description |
---|---|
static BitSet |
andNot(BitSet a,
BitSet b) |
static boolean |
areEqual(BitSet a,
BitSet b) |
static int |
cardinalityOf(BitSet bs)
cardinality = "total number of set bits"
|
static BitSet |
copy(BitSet bs) |
static BitSet |
copy(BitSet a,
BitSet b) |
static BitSet |
copyInvert(BitSet bs,
int n) |
static BitSet |
deleteBits(BitSet bs,
BitSet bsDelete)
this one slides deleted bits out of a pattern.
|
static boolean |
haveCommon(BitSet a,
BitSet b) |
static BitSet |
invertInPlace(BitSet bs,
int n)
inverts the bitset bits 0 through n-1,
and returns a reference to the modified bitset
|
static BitSet |
newBitSet(int i0,
int i1) |
static BitSet |
setAll(int n) |
static BitSet |
setBit(int i) |
static BitSet |
toggleInPlace(BitSet a,
BitSet b)
a perhaps curious method:
b is a reference set, perhaps all atoms in a certain molecule a is the
working set, perhaps representing all displayed atoms
For each set bit in b: a) if a is also set, then clear a's bit UNLESS b) if
a is not set, then add to a all set bits of b
Thus, if a equals b --> clear all if a is a subset of b, then --> b if b is
a subset of a, then --> a not b if a only intersects with b, then --> a or
b if a does not intersect with b, then a or b
In "toggle" mode, when you click on any atom of the molecule, you want
either:
(a) all the atoms in the molecule to be displayed if not all are already
displayed, or
(b) the whole molecule to be hidden if all the atoms of the molecule are
already displayed.
|
public static final BitSet bsNull
public static BitSet setBit(int i)
public static int cardinalityOf(BitSet bs)
bs
- public static BitSet newBitSet(int i0, int i1)
public static BitSet setAll(int n)
public static BitSet invertInPlace(BitSet bs, int n)
bs
- n
- public static BitSet toggleInPlace(BitSet a, BitSet b)
a
- b
-