|
Regina Calculation Engine
|
A set of booleans. More...
#include <utilities/nbooleans.h>
Public Member Functions | |
| NBoolSet () | |
| Creates a new empty set. More... | |
| NBoolSet (bool member) | |
| Creates a set containing a single member as given. More... | |
| NBoolSet (const NBoolSet &cloneMe) | |
| Creates a set equal to the given set. More... | |
| NBoolSet (bool insertTrue, bool insertFalse) | |
Creates a set specifying whether true and/or false should be a member. More... | |
| bool | hasTrue () const |
Determines if true is a member of this set. More... | |
| bool | hasFalse () const |
Determines if false is a member of this set. More... | |
| bool | contains (bool value) const |
| Determines if the given boolean is a member of this set. More... | |
| void | insertTrue () |
Inserts true into this set if it is not already present. More... | |
| void | insertFalse () |
Inserts false into this set if it is not already present. More... | |
| void | removeTrue () |
Removes true from this set if it is present. More... | |
| void | removeFalse () |
Removes false from this set if it is present. More... | |
| void | empty () |
| Removes all elements from this set. More... | |
| void | fill () |
Places both true and false into this set if they are not already present. More... | |
| bool | operator== (const NBoolSet &other) const |
| Determines if this set is equal to the given set. More... | |
| bool | operator!= (const NBoolSet &other) const |
| Determines if this set is not equal to the given set. More... | |
| bool | operator< (const NBoolSet &other) const |
| Determines if this set is a proper subset of the given set. More... | |
| bool | operator> (const NBoolSet &other) const |
| Determines if this set is a proper superset of the given set. More... | |
| bool | operator<= (const NBoolSet &other) const |
| Determines if this set is a subset of (possibly equal to) the given set. More... | |
| bool | operator>= (const NBoolSet &other) const |
| Determines if this set is a superset of (possibly equal to) the given set. More... | |
| NBoolSet & | operator= (const NBoolSet &cloneMe) |
| Sets this set to be identical to the given set. More... | |
| NBoolSet & | operator= (bool member) |
| Sets this set to the single member set containing the given element. More... | |
| NBoolSet & | operator|= (const NBoolSet &other) |
| Sets this set to be the union of this and the given set. More... | |
| NBoolSet & | operator&= (const NBoolSet &other) |
| Sets this set to be the intersection of this and the given set. More... | |
| NBoolSet & | operator^= (const NBoolSet &other) |
| Sets this set to be the symmetric difference of this and the given set. More... | |
| NBoolSet | operator| (const NBoolSet &other) const |
| Returns the union of this set with the given set. More... | |
| NBoolSet | operator& (const NBoolSet &other) const |
| Returns the intersection of this set with the given set. More... | |
| NBoolSet | operator^ (const NBoolSet &other) const |
| Returns the symmetric difference of this set and the given set. More... | |
| NBoolSet | operator~ () const |
| Returns the complement of this set. More... | |
| unsigned char | getByteCode () const |
| Returns the byte code representing this boolean set. More... | |
| void | setByteCode (unsigned char code) |
| Sets this boolean set to that represented by the given byte code. More... | |
Static Public Member Functions | |
| static NBoolSet | fromByteCode (unsigned char code) |
| Creates a boolean set from the given byte code. More... | |
Static Public Attributes | |
| static const NBoolSet | sNone |
| The empty set. More... | |
| static const NBoolSet | sTrue |
The set containing only true. More... | |
| static const NBoolSet | sFalse |
The set containing only false. More... | |
| static const NBoolSet | sBoth |
The set containing both true and false. More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const NBoolSet &set) |
| Writes the given boolean set to the given output stream. More... | |
A set of booleans.
Note that there are only four possible such sets. NBoolSet objects are small enough to pass about by value instead of by reference.
|
inline |
Creates a new empty set.
|
inline |
Creates a set containing a single member as given.
| member | the single element to include in this set. |
|
inline |
Creates a set equal to the given set.
| cloneMe | the set upon which we will base the new set. |
|
inline |
Creates a set specifying whether true and/or false should be a member.
| insertTrue | should the new set include the element true? |
| insertFalse | should the new set include the element false? |
|
inline |
Determines if the given boolean is a member of this set.
| value | the boolean to search for in this set. |
true if and only if the given boolean is a member of this set.
|
inline |
Removes all elements from this set.
|
inline |
Places both true and false into this set if they are not already present.
|
inlinestatic |
Creates a boolean set from the given byte code.
See getByteCode() for more information on byte codes.
| code | the byte code from which the new set will be created. |
|
inline |
Returns the byte code representing this boolean set.
The byte code is sufficient to reconstruct the set and is thus a useful means for passing boolean sets to and from the engine.
The lowest order bit of the byte code is 1 if and only if true is in the set. The next lowest order bit is 1 if and only if false is in the set. All other bits are 0. Thus sets NBoolSet::sNone, NBoolSet::sTrue, NBoolSet::sFalse and NBoolSet::sBoth have byte codes 0, 1, 2 and 3 respectively.
|
inline |
Determines if false is a member of this set.
true if and only if false is a member of this set.
|
inline |
Determines if true is a member of this set.
true if and only if true is a member of this set.
|
inline |
Inserts false into this set if it is not already present.
|
inline |
Inserts true into this set if it is not already present.
|
inline |
Determines if this set is not equal to the given set.
| other | the set to compare with this. |
true if and only if this and the given set are not equal. Returns the intersection of this set with the given set.
The result is a set containing precisely the elements that belong to both original sets. This set is not changed.
| other | the set to intersect with this set. |
Sets this set to be the intersection of this and the given set.
The result is a set containing precisely the elements that belong to both original sets. Note that this set will be modified.
| other | the set to intersect with this set. |
|
inline |
Determines if this set is a proper subset of the given set.
| other | the set to compare with this. |
true if and only if this is a proper subset of the given set.
|
inline |
Determines if this set is a subset of (possibly equal to) the given set.
| other | the set to compare with this. |
true if and only if this is a subset of the given set. Sets this set to be identical to the given set.
| cloneMe | the set whose value this set will take. |
|
inline |
Sets this set to the single member set containing the given element.
| member | the single element to include in this set. |
|
inline |
Determines if this set is equal to the given set.
| other | the set to compare with this. |
true if and only if this and the given set are equal.
|
inline |
Determines if this set is a proper superset of the given set.
| other | the set to compare with this. |
true if and only if this is a proper superset of the given set.
|
inline |
Determines if this set is a superset of (possibly equal to) the given set.
| other | the set to compare with this. |
true if and only if this is a superset of the given set. Returns the symmetric difference of this set and the given set.
The result is a set containing precisely the elements that belong to one but not both of the original sets. This set is not changed.
| other | the set whose symmetric difference with this set is to be found. |
Sets this set to be the symmetric difference of this and the given set.
The result is a set containing precisely the elements that belong to one but not both of the original sets. Note that this set will be modified.
| other | the set whose symmetric difference with this set is to be found. |
Returns the union of this set with the given set.
The result is a set containing precisely the elements that belong to either of the original sets. This set is not changed.
| other | the set to union with this set. |
Sets this set to be the union of this and the given set.
The result is a set containing precisely the elements that belong to either of the original sets. Note that this set will be modified.
| other | the set to union with this set. |
|
inline |
Returns the complement of this set.
The result is a set containing precisely the elements that this set does not contain. This set is not changed.
|
inline |
Removes false from this set if it is present.
|
inline |
Removes true from this set if it is present.
|
inline |
Sets this boolean set to that represented by the given byte code.
See getByteCode() for more information on byte codes.
| code | the byte code that will determine the new value of this set. |
|
friend |
Writes the given boolean set to the given output stream.
The set will be written in the form { true, false }, { true }, { false } or { }.
| out | the output stream to which to write. |
| set | the boolean set to write. |
|
static |
The set containing both true and false.
|
static |
The set containing only false.
|
static |
The empty set.
|
static |
The set containing only true.