|
spot
2.16
|
An acceptance mark. More...
#include <spot/twa/acc.hh>
Public Member Functions | |
| mark_t ()=default | |
| Initialize an empty mark_t. More... | |
| template<class iterator > | |
| mark_t (const iterator &begin, const iterator &end) | |
| Create a mark_t from a range of set numbers. More... | |
| mark_t (std::initializer_list< unsigned > vals) | |
| Create a mark_t from a list of set numbers. More... | |
| size_t | hash () const noexcept |
| Returns a hash value for this mark. More... | |
| bool | operator== (mark_t o) const |
| Equality comparison. More... | |
| bool | operator!= (mark_t o) const |
| Inequality comparison. More... | |
| bool | operator< (mark_t o) const |
| Less-than comparison. More... | |
| bool | operator<= (mark_t o) const |
| Less-or-equal comparison. More... | |
| bool | operator> (mark_t o) const |
| Greater-than comparison. More... | |
| bool | operator>= (mark_t o) const |
| Greater-or-equal comparison. More... | |
| operator bool () const | |
| Returns true iff the mark is non-empty (at least one bit set). More... | |
| bool | has (unsigned u) const |
| Returns true iff acceptance set u is in this mark. More... | |
| void | set (unsigned u) |
| Add acceptance set u to this mark. More... | |
| void | clear (unsigned u) |
| Remove acceptance set u from this mark. More... | |
| mark_t & | operator&= (mark_t r) |
| Intersection-assignment. More... | |
| mark_t & | operator|= (mark_t r) |
| Union-assignment. More... | |
| mark_t & | operator-= (mark_t r) |
| Difference-assignment (removes bits set in r). More... | |
| mark_t & | operator^= (mark_t r) |
| Symmetric-difference-assignment. More... | |
| mark_t | operator& (mark_t r) const |
| Intersection. More... | |
| mark_t | operator| (mark_t r) const |
| Union. More... | |
| mark_t | operator- (mark_t r) const |
| Difference (bits in this mark but not in r). More... | |
| mark_t | operator~ () const |
| Bitwise complement. More... | |
| mark_t | operator^ (mark_t r) const |
| Symmetric difference. More... | |
| mark_t | operator<< (unsigned i) const |
| Left-shift all acceptance set indices by i. More... | |
| mark_t & | operator<<= (unsigned i) |
| Left-shift-assignment. More... | |
| mark_t | operator>> (unsigned i) const |
| Right-shift all acceptance set indices by i. More... | |
| mark_t & | operator>>= (unsigned i) |
| Right-shift-assignment. More... | |
| mark_t | strip (mark_t y) const |
| Remove bits indexed by y and compact the remaining bits. More... | |
| bool | subset (mark_t m) const |
| Whether the set of bits represented by *this is a subset of those represented by m. More... | |
| bool | proper_subset (mark_t m) const |
| Whether the set of bits represented by *this is a proper subset of those represented by m. More... | |
| unsigned | count () const |
| Number of bits set. More... | |
| unsigned | max_set () const |
| The number of the highest set used plus one. More... | |
| unsigned | min_set () const |
| The number of the lowest set used plus one. More... | |
| mark_t | lowest () const |
| A mark_t where all bits have been removed except the lowest one. More... | |
| bool | is_singleton () const |
| Whether the mark contains only one bit set. More... | |
| bool | has_many () const |
| Whether the mark contains at least two bits set. More... | |
| mark_t & | remove_some (unsigned n) |
| Remove n bits that were set. More... | |
| template<class iterator > | |
| void | fill (iterator here) const |
| Fill a container with the indices of the bits that are set. More... | |
| spot::internal::mark_container | sets () const |
| Returns some iterable object that contains the used sets. More... | |
| std::string | as_string () const |
| Returns a string representation of this mark. More... | |
Static Public Member Functions | |
| constexpr static unsigned | max_accsets () |
| The maximum number of acceptance sets supported by this implementation. More... | |
| static mark_t | all () |
| A mark_t with all bits set to one. More... | |
An acceptance mark.
This type is used to represent a set of acceptance sets. It works (and is implemented) like a bit vector where bit at index i represents the membership to the i-th acceptance set.
Typically, each transition of an automaton is labeled by a mark_t that represents the membership of the transition to each of the acceptance sets.
For efficiency reason, the maximum number of acceptance sets (i.e., the size of the bit vector) supported is a compile-time constant. It can be changed by passing an option to the configure script of Spot.
|
default |
Initialize an empty mark_t.
|
inline |
Create a mark_t from a range of set numbers.
|
inline |
Create a mark_t from a list of set numbers.
|
inlinestatic |
A mark_t with all bits set to one.
Beware that all bits are sets, not just the bits used in the acceptance condition. This class is unaware of the acceptance condition.
| std::string spot::acc_cond::mark_t::as_string | ( | ) | const |
Returns a string representation of this mark.
|
inline |
Remove acceptance set u from this mark.
|
inline |
Number of bits set.
| void spot::acc_cond::mark_t::fill | ( | iterator | here | ) | const |
Fill a container with the indices of the bits that are set.
|
inline |
Returns true iff acceptance set u is in this mark.
References spot::operator&().
Referenced by spot::acc_cond::useless().
|
inline |
Whether the mark contains at least two bits set.
|
inlinenoexcept |
Returns a hash value for this mark.
|
inline |
Whether the mark contains only one bit set.
|
inline |
A mark_t where all bits have been removed except the lowest one.
For instance if this contains {1,3,8}, the output is {1}.
|
inlinestaticconstexpr |
The maximum number of acceptance sets supported by this implementation.
The value can be changed at compile-time using configure's –enable-max-accsets=N option.
Referenced by spot::acc_cond::all_sets_().
|
inline |
The number of the highest set used plus one.
If no set is used, this returns 0, If the sets {1,3,8} are used, this returns 9.
|
inline |
The number of the lowest set used plus one.
If no set is used, this returns 0. If the sets {1,3,8} are used, this returns 2.
|
inlineexplicit |
Returns true iff the mark is non-empty (at least one bit set).
|
inline |
Inequality comparison.
Difference (bits in this mark but not in r).
Difference-assignment (removes bits set in r).
|
inline |
Less-than comparison.
|
inline |
Left-shift all acceptance set indices by i.
|
inline |
Left-shift-assignment.
|
inline |
Less-or-equal comparison.
|
inline |
Equality comparison.
|
inline |
Greater-than comparison.
|
inline |
Greater-or-equal comparison.
|
inline |
Right-shift all acceptance set indices by i.
|
inline |
Right-shift-assignment.
|
inline |
Bitwise complement.
|
inline |
Whether the set of bits represented by *this is a proper subset of those represented by m.
|
inline |
Remove n bits that were set.
If there are less than n bits set, the output is empty.
|
inline |
Add acceptance set u to this mark.
Referenced by spot::acc_cond::acc_code::generalized_rabin().
|
inline |
Returns some iterable object that contains the used sets.
Remove bits indexed by y and compact the remaining bits.
Each bit position set in y is removed from this mark, and the surviving bits are shifted down to fill the gaps.
|
inline |
Whether the set of bits represented by *this is a subset of those represented by m.
1.9.1