org.jmol.util
Class BitSetUtil
java.lang.Object
org.jmol.util.BitSetUtil
public final class BitSetUtil
- extends java.lang.Object
Field Summary |
static java.util.BitSet |
bsNull
|
Method Summary |
static java.util.BitSet |
andNot(java.util.BitSet a,
java.util.BitSet b)
|
static boolean |
areEqual(java.util.BitSet a,
java.util.BitSet b)
|
static int |
cardinalityOf(java.util.BitSet bs)
cardinality = "total number of set bits" |
static java.util.BitSet |
copy(java.util.BitSet bs)
|
static java.util.BitSet |
copy(java.util.BitSet a,
java.util.BitSet b)
|
static java.util.BitSet |
copyInvert(java.util.BitSet bs,
int n)
|
static java.util.BitSet |
deleteBits(java.util.BitSet bs,
java.util.BitSet bsDelete)
this one slides deleted bits out of a pattern. |
static boolean |
haveCommon(java.util.BitSet a,
java.util.BitSet b)
|
static java.util.BitSet |
invertInPlace(java.util.BitSet bs,
int n)
inverts the bitset bits 0 through n-1,
and returns a reference to the modified bitset |
static java.util.BitSet |
newBitSet(int i0,
int i1)
|
static java.util.BitSet |
setAll(int n)
|
static java.util.BitSet |
setBit(int i)
|
static java.util.BitSet |
toggleInPlace(java.util.BitSet a,
java.util.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. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
bsNull
public static final java.util.BitSet bsNull
BitSetUtil
public BitSetUtil()
setBit
public static java.util.BitSet setBit(int i)
areEqual
public static boolean areEqual(java.util.BitSet a,
java.util.BitSet b)
haveCommon
public static boolean haveCommon(java.util.BitSet a,
java.util.BitSet b)
cardinalityOf
public static int cardinalityOf(java.util.BitSet bs)
- cardinality = "total number of set bits"
- Parameters:
bs
-
- Returns:
- number of set bits
newBitSet
public static java.util.BitSet newBitSet(int i0,
int i1)
setAll
public static java.util.BitSet setAll(int n)
andNot
public static java.util.BitSet andNot(java.util.BitSet a,
java.util.BitSet b)
copy
public static java.util.BitSet copy(java.util.BitSet bs)
copy
public static java.util.BitSet copy(java.util.BitSet a,
java.util.BitSet b)
copyInvert
public static java.util.BitSet copyInvert(java.util.BitSet bs,
int n)
invertInPlace
public static java.util.BitSet invertInPlace(java.util.BitSet bs,
int n)
- inverts the bitset bits 0 through n-1,
and returns a reference to the modified bitset
- Parameters:
bs
- n
-
- Returns:
- pointer to original bitset, now inverted
toggleInPlace
public static java.util.BitSet toggleInPlace(java.util.BitSet a,
java.util.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.
- Parameters:
a
- b
-
- Returns:
- a handy pointer to the working set, a
deleteBits
public static java.util.BitSet deleteBits(java.util.BitSet bs,
java.util.BitSet bsDelete)
- this one slides deleted bits out of a pattern.
deleteBits 101011b, 000011b --> 1010b
Java 1.4, not 1.3
- Parameters:
bs
- bsDelete
-
- Returns:
- shorter bitset