mCRL2
Loading...
Searching...
No Matches
mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb Struct Reference

information about a block More...

#include <liblts_bisim_gj_lazy_BLC.h>

Classes

union  start_non_bottom_states_or_state_in_reduced_LTS
 

Public Member Functions

 block_type_lb (const block_type_lb &other)
 copy constructor. Required by MSCV.
 
 block_type_lb (state_in_block_pointer_lb *start_bottom, state_in_block_pointer_lb *start_non_bottom, state_in_block_pointer_lb *end, constellation_type_lb &new_c, BLC_source_type &new_bbs, char new_small_subblock_counter)
 constructor
 
template<class LTS_TYPE >
std::string debug_id_short (const bisim_partitioner_gj_lazy_BLC< LTS_TYPE > &partitioner) const
 print a short block identification for debugging
 
template<class LTS_TYPE >
std::string debug_id (const bisim_partitioner_gj_lazy_BLC< LTS_TYPE > &partitioner) const
 print a block identification for debugging
 

Public Attributes

constellation_type_lb * constellation
 constellation that the block is in
 
state_in_block_pointer_lb * start_bottom_states
 
union mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::start_non_bottom_states_or_state_in_reduced_LTS sta
 
state_in_block_pointer_lb * end_states
 pointer past the last state in the block
 
BLC_source_type * block_BLC_source
 superblock for BLC sets that this block is part of
 
state_index refinement_info = null_state
 pointer to refinement data structure
 
char contains_new_bottom_states = false
 a boolean that is true iff the block contains new bottom states
 
char small_subblock_counter
 a boolean that is true iff the block is a small subblock
 
check_complexity::block_gj_counter_t work_counter
 

Detailed Description

information about a block

A block is mainly described through the set of states it contains. For this we have fixed_vector<state_in_block_pointer_lb> m_states_in_blocks, where states are kept grouped by block. The fields start_bottom_states, sta.rt_non_bottom_states and end_states are pointers into that array.

Some fields get a second life (to save memory) during initialisation or during finalising; that is the purpose of the unions.

A block should be trivially destructible because we want it to be allocated using the pool allocator simple_list<BLC_indicators_lb>::get_pool(). This is why there are no iterator fields.

Definition at line 564 of file liblts_bisim_gj_lazy_BLC.h.

Constructor & Destructor Documentation

◆ block_type_lb() [1/2]

mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::block_type_lb ( const block_type_lb &  other)
inline

copy constructor. Required by MSCV.

Definition at line 613 of file liblts_bisim_gj_lazy_BLC.h.

◆ block_type_lb() [2/2]

mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::block_type_lb ( state_in_block_pointer_lb *  start_bottom,
state_in_block_pointer_lb *  start_non_bottom,
state_in_block_pointer_lb *  end,
constellation_type_lb &  new_c,
BLC_source_type &  new_bbs,
char  new_small_subblock_counter 
)
inline

constructor

Definition at line 637 of file liblts_bisim_gj_lazy_BLC.h.

Member Function Documentation

◆ debug_id()

template<class LTS_TYPE >
std::string mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::debug_id ( const bisim_partitioner_gj_lazy_BLC< LTS_TYPE > &  partitioner) const
inline

print a block identification for debugging

Definition at line 666 of file liblts_bisim_gj_lazy_BLC.h.

◆ debug_id_short()

template<class LTS_TYPE >
std::string mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::debug_id_short ( const bisim_partitioner_gj_lazy_BLC< LTS_TYPE > &  partitioner) const
inline

print a short block identification for debugging

Definition at line 653 of file liblts_bisim_gj_lazy_BLC.h.

Member Data Documentation

◆ block_BLC_source

BLC_source_type* mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::block_BLC_source

superblock for BLC sets that this block is part of

When a block is split, this superblock is not split, so the BLC sets do not need to be split.

Definition at line 602 of file liblts_bisim_gj_lazy_BLC.h.

◆ constellation

constellation_type_lb* mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::constellation

constellation that the block is in

Definition at line 567 of file liblts_bisim_gj_lazy_BLC.h.

◆ contains_new_bottom_states

char mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::contains_new_bottom_states = false

a boolean that is true iff the block contains new bottom states

If a block contains new bottom states, it will be ignored until stabilizeB() handles all blocks with new bottom states. Such a block must also be added to the list m_blocks_with_new_bottom_states.

Definition at line 628 of file liblts_bisim_gj_lazy_BLC.h.

◆ end_states

state_in_block_pointer_lb* mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::end_states

pointer past the last state in the block

Definition at line 597 of file liblts_bisim_gj_lazy_BLC.h.

◆ refinement_info

state_index mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::refinement_info = null_state

pointer to refinement data structure

When a block needs refinement, information about how to initialize the states is stored in the refinement data structure. The pointer mostly points to an element of the list of blocks that need refinement. When the block does not need to be refined, this value is nullptr.

Definition at line 610 of file liblts_bisim_gj_lazy_BLC.h.

◆ small_subblock_counter

char mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::small_subblock_counter

a boolean that is true iff the block is a small subblock

If a block has become a small subblock of an earlier split, it is allowed to go through its states and transitions once. This is exploited to avoid the costly handling of NewBotSt.

Definition at line 634 of file liblts_bisim_gj_lazy_BLC.h.

◆ sta

union mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::start_non_bottom_states_or_state_in_reduced_LTS mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::sta

◆ start_bottom_states

state_in_block_pointer_lb* mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::start_bottom_states

first state of the block in m_states_in_blocks States in [start_bottom_states, sta.rt_non_bottom_states) are bottom states in the block

Definition at line 572 of file liblts_bisim_gj_lazy_BLC.h.

◆ work_counter

check_complexity::block_gj_counter_t mcrl2::lts::detail::bisimulation_gj_lazy_BLC::block_type_lb::work_counter
mutable

Definition at line 674 of file liblts_bisim_gj_lazy_BLC.h.


The documentation for this struct was generated from the following file: