Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

spot::couvreur99_check_shy Class Reference
[Emptiness-check algorithms]

A version of spot::couvreur99_check that tries to visit known states first. More...

#include <tgbaalgos/gtec/gtec.hh>

Inheritance diagram for spot::couvreur99_check_shy:

Inheritance graph
[legend]
Collaboration diagram for spot::couvreur99_check_shy:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 couvreur99_check_shy (const tgba *a, bool poprem=true, bool group=true, const numbered_state_heap_factory *nshf=numbered_state_heap_hash_map_factory::instance())
virtual ~couvreur99_check_shy ()
virtual emptiness_check_resultcheck ()
 Check whether the automaton's language is empty.
virtual std::ostream & print_stats (std::ostream &os) const
 Print statistics, if any.
const couvreur99_check_statusresult () const
 Return the status of the emptiness-check.
const tgbaautomaton () const
 The automaton that this emptiness-check inspects.
void set_states (unsigned n)
void inc_states ()
void inc_transitions ()
void inc_depth (unsigned n=1)
void dec_depth (unsigned n=1)
int states () const
int transitions () const
int max_depth () const
int depth () const

Protected Types

typedef std::list< successorsucc_queue
typedef std::list< todo_itemtodo_list

Protected Member Functions

void clear_todo ()
virtual int * find_state (const state *s)
 find the SCC number of a unprocessed state.
void remove_component (const state *start_delete)
 Remove a strongly component from the hash.

Protected Attributes

std::stack< bdd > arc
int num
todo_list todo
bool group_
couvreur99_check_statusecs_
bool poprem_
 Whether to store the state to be removed.
const tgbaa_
 The automaton.

Classes

struct  successor
struct  todo_item

Detailed Description

A version of spot::couvreur99_check that tries to visit known states first.

If group is true (the default), the successors of all the states that belong to the same SCC will be considered when choosing a successor. Otherwise, only the successor of the topmost state on the DFS stack are considered.

See the documentation for spot::couvreur99_check


Member Typedef Documentation

typedef std::list<successor> spot::couvreur99_check_shy::succ_queue [protected]
 

typedef std::list<todo_item> spot::couvreur99_check_shy::todo_list [protected]
 


Constructor & Destructor Documentation

spot::couvreur99_check_shy::couvreur99_check_shy const tgba a,
bool  poprem = true,
bool  group = true,
const numbered_state_heap_factory nshf = numbered_state_heap_hash_map_factory::instance()
 

virtual spot::couvreur99_check_shy::~couvreur99_check_shy  )  [virtual]
 


Member Function Documentation

const tgba* spot::emptiness_check::automaton  )  const [inline, inherited]
 

The automaton that this emptiness-check inspects.

virtual emptiness_check_result* spot::couvreur99_check_shy::check  )  [virtual]
 

Check whether the automaton's language is empty.

Reimplemented from spot::couvreur99_check.

void spot::couvreur99_check_shy::clear_todo  )  [protected]
 

void spot::ec_statistics::dec_depth unsigned  n = 1  )  [inline, inherited]
 

int spot::ec_statistics::depth  )  const [inline, inherited]
 

virtual int* spot::couvreur99_check_shy::find_state const state s  )  [protected, virtual]
 

find the SCC number of a unprocessed state.

Sometimes we want to modify some of the above structures when looking up a new state. This happens for instance when find() must perform inclusion checking and add new states to process to TODO during this step. (Because TODO must be known, sub-classing spot::numbered_state_heap is not enough.) Then overriding this method is the way to go.

void spot::ec_statistics::inc_depth unsigned  n = 1  )  [inline, inherited]
 

void spot::ec_statistics::inc_states  )  [inline, inherited]
 

void spot::ec_statistics::inc_transitions  )  [inline, inherited]
 

int spot::ec_statistics::max_depth  )  const [inline, inherited]
 

virtual std::ostream& spot::couvreur99_check::print_stats std::ostream &  os  )  const [virtual, inherited]
 

Print statistics, if any.

Reimplemented from spot::emptiness_check.

void spot::couvreur99_check::remove_component const state start_delete  )  [protected, inherited]
 

Remove a strongly component from the hash.

This function remove all accessible state from a given state. In other words, it removes the strongly connected component that contains this state.

const couvreur99_check_status* spot::couvreur99_check::result  )  const [inherited]
 

Return the status of the emptiness-check.

When check() succeed, the status should be passed along to spot::counter_example.

This status should not be deleted, it is a pointer to a member of this class that will be deleted when the couvreur99 object is deleted.

void spot::ec_statistics::set_states unsigned  n  )  [inline, inherited]
 

int spot::ec_statistics::states  )  const [inline, inherited]
 

int spot::ec_statistics::transitions  )  const [inline, inherited]
 


Member Data Documentation

const tgba* spot::emptiness_check::a_ [protected, inherited]
 

The automaton.

std::stack<bdd> spot::couvreur99_check_shy::arc [protected]
 

couvreur99_check_status* spot::couvreur99_check::ecs_ [protected, inherited]
 

bool spot::couvreur99_check_shy::group_ [protected]
 

int spot::couvreur99_check_shy::num [protected]
 

bool spot::couvreur99_check::poprem_ [protected, inherited]
 

Whether to store the state to be removed.

todo_list spot::couvreur99_check_shy::todo [protected]
 


The documentation for this class was generated from the following file:
Please comment this page and report errors about it on the RefDocComments page.
Generated on Mon Jan 31 12:55:52 2005 for spot by doxygen 1.4.0