mCRL2
|
#include <liblts_sim.h>
Classes | |
struct | state_bucket |
Public Member Functions | |
sim_partitioner (LTS_TYPE &l) | |
~sim_partitioner () | |
virtual void | partitioning_algorithm () |
std::vector< mcrl2::lts::transition > | get_transitions () const |
std::size_t | num_eq_classes () const |
std::size_t | get_eq_class (std::size_t s) const |
bool | in_preorder (std::size_t s, std::size_t t) const |
bool | in_same_class (std::size_t s, std::size_t t) const |
Protected Member Functions | |
void | partitioning_algorithmG () |
void | initialise_datastructures () |
void | refine (bool &change) |
void | update () |
void | touch (std::size_t a, std::size_t alpha) |
void | untouch (std::size_t alpha) |
void | reverse_topological_sort (std::vector< std::size_t > &Sort) |
void | dfs_visit (std::size_t u, std::vector< bool > &visited, std::vector< std::size_t > &Sort) |
void | initialise_Sigma (std::size_t gamma, std::size_t l) |
void | initialise_Pi (std::size_t gamma, std::size_t l) |
void | filter (std::size_t S, std::vector< std::vector< bool > > &R, bool B) |
void | cleanup (std::size_t alpha, std::size_t beta) |
void | initialise_pre_EA () |
void | induce_P_on_Pi () |
std::string | print_Sigma_P () |
std::string | print_Pi_Q () |
std::string | print_Sigma () |
std::string | print_Pi () |
std::string | print_relation (std::size_t s, std::vector< std::vector< bool > > &R) |
std::string | print_block (std::size_t b) |
std::string | print_structure (hash_table3 *struc) |
std::string | print_reverse_topological_sort (const std::vector< std::size_t > &Sort) |
Protected Attributes | |
LTS_TYPE & | aut |
mcrl2::lts::outgoing_transitions_per_state_action_t | trans_index |
std::size_t | s_Sigma |
std::size_t | s_Pi |
std::vector< bool > | state_touched |
std::vector< bool > | block_touched |
std::vector< state_bucket > | state_buckets |
std::vector< std::size_t > | block_Pi |
std::vector< std::size_t > | parent |
std::vector< std::vector< std::size_t > > | children |
std::vector< ptrdiff_t > | contents_t |
std::vector< ptrdiff_t > | contents_u |
std::vector< std::vector< bool > > | stable |
hash_table3 * | exists |
hash_table3 * | forall |
std::vector< std::vector< std::size_t > > | pre_exists |
std::vector< std::vector< std::size_t > > | pre_forall |
hash_table3 * | match |
std::vector< std::vector< bool > > | P |
std::vector< std::vector< bool > > | Q |
std::vector< std::size_t > | touched_blocks |
std::vector< std::size_t > | contents |
Definition at line 28 of file liblts_sim.h.
mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::sim_partitioner | ( | LTS_TYPE & | l | ) |
Creates a partitioner for an LTS.
[in] | l | Pointer to the LTS. |
Definition at line 161 of file liblts_sim.h.
mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::~sim_partitioner |
Destroys this partitioner.
Definition at line 170 of file liblts_sim.h.
|
protected |
Definition at line 726 of file liblts_sim.h.
|
protected |
Definition at line 475 of file liblts_sim.h.
|
protected |
Definition at line 670 of file liblts_sim.h.
std::size_t mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::get_eq_class | ( | std::size_t | s | ) | const |
Gives the equivalence class number of a state. The equivalence class numbers range from 0 upto (and excluding) num_eq_classes().
[in] | s | A state number. |
Definition at line 824 of file liblts_sim.h.
std::vector< mcrl2::lts::transition > mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::get_transitions |
Gives the transition relation on the computed equivalence classes of the LTS. The label numbers of the transitions correspond to the label numbers of the LTS that was passed as an argument to the constructor of this partitioner. The state numbers of the transitions are the equivalence class numbers which range from 0 upto (and excluding) num_eq_classes().
Definition at line 768 of file liblts_sim.h.
bool mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::in_preorder | ( | std::size_t | s, |
std::size_t | t | ||
) | const |
Returns whether one state is simulated by another state.
[in] | s | A state number. |
[in] | t | A state number. |
true | if s is simulated by t; |
false | otherwise. |
Definition at line 830 of file liblts_sim.h.
bool mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::in_same_class | ( | std::size_t | s, |
std::size_t | t | ||
) | const |
Returns whether two states are in the same simulation equivalence class.
[in] | s | A state number. |
[in] | t | A state number. |
true | if s and t are in the same simulation equivalence class; |
false | otherwise. |
Definition at line 836 of file liblts_sim.h.
|
protected |
Definition at line 648 of file liblts_sim.h.
|
protected |
Definition at line 241 of file liblts_sim.h.
|
protected |
Definition at line 299 of file liblts_sim.h.
|
protected |
Definition at line 637 of file liblts_sim.h.
|
protected |
Definition at line 341 of file liblts_sim.h.
std::size_t mcrl2::lts::detail::sim_partitioner< LTS_TYPE >::num_eq_classes |
Gives the number of simulation equivalence classes of the LTS.
Definition at line 818 of file liblts_sim.h.
|
virtual |
Computes the simulation equivalence classes and preorder relations of the LTS.
Reimplemented in mcrl2::lts::detail::ready_sim_partitioner< LTS_TYPE >.
Definition at line 180 of file liblts_sim.h.
|
protected |
Computes the simulation equivalence classes and preorder relations of the LTS.
Definition at line 188 of file liblts_sim.h.
|
protected |
Definition at line 1022 of file liblts_sim.h.
|
protected |
Definition at line 1010 of file liblts_sim.h.
|
protected |
Definition at line 982 of file liblts_sim.h.
|
protected |
Definition at line 1038 of file liblts_sim.h.
|
protected |
Definition at line 1076 of file liblts_sim.h.
|
protected |
Definition at line 991 of file liblts_sim.h.
|
protected |
Definition at line 973 of file liblts_sim.h.
|
protected |
Definition at line 1060 of file liblts_sim.h.
|
protected |
Definition at line 355 of file liblts_sim.h.
|
protected |
Definition at line 462 of file liblts_sim.h.
|
protected |
Definition at line 490 of file liblts_sim.h.
|
protected |
Definition at line 518 of file liblts_sim.h.
|
protected |
Definition at line 546 of file liblts_sim.h.
|
protected |
Definition at line 100 of file liblts_sim.h.
|
protected |
Definition at line 107 of file liblts_sim.h.
|
protected |
Definition at line 105 of file liblts_sim.h.
|
protected |
Definition at line 109 of file liblts_sim.h.
|
protected |
Definition at line 123 of file liblts_sim.h.
|
protected |
Definition at line 110 of file liblts_sim.h.
|
protected |
Definition at line 111 of file liblts_sim.h.
|
protected |
Definition at line 113 of file liblts_sim.h.
|
protected |
Definition at line 114 of file liblts_sim.h.
|
protected |
Definition at line 117 of file liblts_sim.h.
|
protected |
Definition at line 118 of file liblts_sim.h.
|
protected |
Definition at line 108 of file liblts_sim.h.
|
protected |
Definition at line 115 of file liblts_sim.h.
|
protected |
Definition at line 116 of file liblts_sim.h.
|
protected |
Definition at line 119 of file liblts_sim.h.
|
protected |
Definition at line 103 of file liblts_sim.h.
|
protected |
Definition at line 102 of file liblts_sim.h.
|
protected |
Definition at line 112 of file liblts_sim.h.
|
protected |
Definition at line 106 of file liblts_sim.h.
|
protected |
Definition at line 104 of file liblts_sim.h.
|
protected |
Definition at line 122 of file liblts_sim.h.
|
protected |
Definition at line 101 of file liblts_sim.h.