mCRL2
|
stores information about a block More...
#include <liblts_bisim_dnj.h>
Public Member Functions | |
block_t (permutation_entry *const new_begin, permutation_entry *const new_end, state_type const new_seqnr) | |
constructor | |
state_type | size () const |
provides the number of states in the block | |
state_type | bottom_size () const |
provides the number of bottom states in the block | |
state_type | marked_bottom_size () const |
provides the number of marked bottom states in the block | |
state_type | marked_size () const |
provides the number of marked states in the block | |
state_type | unmarked_bottom_size () const |
provides the number of unmarked bottom states in the block | |
state_type | unmarked_nonbottom_size () const |
provides the number of unmarked nonbottom states in the block | |
bool | mark_nonbottom (permutation_entry *const s) |
mark a non-bottom state | |
bool | mark (permutation_entry *const s) |
mark a state | |
block_t * | split_off_block (enum new_block_mode_t new_block_mode, ONLY_IF_DEBUG(const bisim_partitioner_dnj< LTS_TYPE > &partitioner,) state_type new_seqnr) |
refine a block | |
template<class LTS_TYPE > | |
std::string | debug_id (const bisim_partitioner_dnj< LTS_TYPE > &partitioner) const |
print a block identification for debugging | |
Public Attributes | |
permutation_entry * | begin |
iterator to the first state of the block | |
permutation_entry * | marked_bottom_begin |
iterator to the first marked bottom state of the block | |
permutation_entry * | nonbottom_begin |
iterator to the first non-bottom state of the block | |
permutation_entry * | marked_nonbottom_begin |
iterator to the first marked non-bottom state of the block | |
permutation_entry * | end |
iterator past the last state of the block | |
simple_list< block_bunch_slice_t > | stable_block_bunch |
list of stable block_bunch-slices with transitions from this block | |
const state_type | seqnr |
unique sequence number of this block | |
check_complexity::block_dnj_counter_t | work_counter |
stores information about a block
A block corresponds to a slice of the permutation array. As the number of blocks is initially unknown, we will allocate instances of this class dynamically.
The slice in the permutation array containing the states of the block is subdivided into the following subslices (in this order):
A state should be marked iff it is a predecessor of the current splitter (through a strong transition). The marking is later extended to the R-states; that are the states with a weak transition to the splitter.
(During the execution of some functions, blocks are subdivided further; however, as these subdivisions are local to a single function, they are not stored here.)
Note that block_t uses the default destructor; therefore, if simple_list is trivially destructible, so is block_t.
Definition at line 347 of file liblts_bisim_dnj.h.
|
inline |
constructor
The constructor initialises the block to: all states are bottom states, no state is marked.
new_begin | initial iterator to the first state of the block |
new_end | initial iterator past the last state of the block |
new_seqnr | is the sequence number of the new block |
Definition at line 381 of file liblts_bisim_dnj.h.
|
inline |
provides the number of bottom states in the block
Definition at line 404 of file liblts_bisim_dnj.h.
|
inline |
print a block identification for debugging
Definition at line 498 of file liblts_bisim_dnj.h.
|
inline |
mark a state
Marking is done by moving the state to the slice of the marked bottom or non-bottom states of the block.
s | the state that has to be marked |
Definition at line 468 of file liblts_bisim_dnj.h.
|
inline |
mark a non-bottom state
Marking is done by moving the state to the slice of the marked non-bottom states of the block.
s | the non-bottom state that has to be marked |
Definition at line 451 of file liblts_bisim_dnj.h.
|
inline |
provides the number of marked bottom states in the block
Definition at line 413 of file liblts_bisim_dnj.h.
|
inline |
provides the number of marked states in the block
Definition at line 422 of file liblts_bisim_dnj.h.
|
inline |
provides the number of states in the block
Definition at line 395 of file liblts_bisim_dnj.h.
|
inline |
provides the number of unmarked bottom states in the block
Definition at line 429 of file liblts_bisim_dnj.h.
|
inline |
provides the number of unmarked nonbottom states in the block
Definition at line 438 of file liblts_bisim_dnj.h.
permutation_entry* mcrl2::lts::detail::bisim_dnj::block_t::begin |
iterator to the first state of the block
Definition at line 351 of file liblts_bisim_dnj.h.
permutation_entry* mcrl2::lts::detail::bisim_dnj::block_t::end |
iterator past the last state of the block
Definition at line 363 of file liblts_bisim_dnj.h.
permutation_entry* mcrl2::lts::detail::bisim_dnj::block_t::marked_bottom_begin |
iterator to the first marked bottom state of the block
Definition at line 354 of file liblts_bisim_dnj.h.
permutation_entry* mcrl2::lts::detail::bisim_dnj::block_t::marked_nonbottom_begin |
iterator to the first marked non-bottom state of the block
Definition at line 360 of file liblts_bisim_dnj.h.
permutation_entry* mcrl2::lts::detail::bisim_dnj::block_t::nonbottom_begin |
iterator to the first non-bottom state of the block
Definition at line 357 of file liblts_bisim_dnj.h.
const state_type mcrl2::lts::detail::bisim_dnj::block_t::seqnr |
unique sequence number of this block
After the stuttering equivalence algorithm has terminated, this number is used as a state number in the quotient LTS.
Definition at line 372 of file liblts_bisim_dnj.h.
simple_list<block_bunch_slice_t> mcrl2::lts::detail::bisim_dnj::block_t::stable_block_bunch |
list of stable block_bunch-slices with transitions from this block
Definition at line 367 of file liblts_bisim_dnj.h.
|
mutable |
Definition at line 513 of file liblts_bisim_dnj.h.