Package org.jmol.util
Class BSUtil
java.lang.Object
org.jmol.util.BSUtil
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic BSstatic booleanstatic intcardinalityOf(BS bs) cardinality = "total number of set bits"static BSstatic BSstatic BScopyInvert(BS bs, int n) static BSdeleteBits(BS bs, BS bsDelete) this one slides deleted bits out of a pattern.static booleanhaveCommon(BS a, BS b) static BSinvertInPlace(BS bs, int n) inverts the bitset bits 0 through n-1, and returns a reference to the modified bitsetstatic BSnewAndSetBit(int i) static BSnewBitSet2(int i0, int i1) static voidoffset the bitset in place by the specified number of bits starting at a given positionstatic BSsetAll(int n) static voidsetMapBitSet(Map<String, BS> ht, int i1, int i2, String key) static voidthis one slides bits to higher positions based on a pattern.static BStoggleInPlace(BS a, BS 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.
-
Field Details
-
emptySet
-
-
Constructor Details
-
BSUtil
public BSUtil()
-
-
Method Details
-
newAndSetBit
-
areEqual
-
haveCommon
-
cardinalityOf
cardinality = "total number of set bits"- Parameters:
bs-- Returns:
- number of set bits
-
newBitSet2
-
setAll
-
andNot
-
copy
-
copy2
-
copyInvert
-
invertInPlace
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
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
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
-
shiftBits
this one slides bits to higher positions based on a pattern. shiftBits 101011b, 000011b --> 10101100b- Parameters:
bs-bsAdded-setIfFound-iLast-
-
offset
offset the bitset in place by the specified number of bits starting at a given position- Parameters:
bs0-pos- starting position; no change before thisoffset-
-
setMapBitSet
-