Vcsn  2.8
Be Rational
vcsn::detail::scc_impl< Aut, kosaraju_tag > Class Template Reference

Compute the strongly connected components using Kosaraju's algorithm. More...

#include <scc.hh>

Collaboration diagram for vcsn::detail::scc_impl< Aut, kosaraju_tag >:

Public Types

using state_t = state_t_of< Aut >
 
using component_t = detail::component_t< Aut >
 
using components_t = detail::components_t< Aut >
 

Public Member Functions

 scc_impl (const Aut &aut)
 
const components_tcomponents () const
 

Private Member Functions

void dfs (state_t s)
 

Private Attributes

Aut aut_
 Input automaton. More...
 
std::size_t num_ = 0
 The current component number. More...
 
components_t components_
 All components. More...
 
std::unordered_set< state_tmarked_
 

Detailed Description

template<Automaton Aut>
class vcsn::detail::scc_impl< Aut, kosaraju_tag >

Compute the strongly connected components using Kosaraju's algorithm.

Definition at line 217 of file scc.hh.

Member Typedef Documentation

◆ component_t

template<Automaton Aut>
using vcsn::detail::scc_impl< Aut, kosaraju_tag >::component_t = detail::component_t<Aut>

Definition at line 221 of file scc.hh.

◆ components_t

template<Automaton Aut>
using vcsn::detail::scc_impl< Aut, kosaraju_tag >::components_t = detail::components_t<Aut>

Definition at line 222 of file scc.hh.

◆ state_t

template<Automaton Aut>
using vcsn::detail::scc_impl< Aut, kosaraju_tag >::state_t = state_t_of<Aut>

Definition at line 220 of file scc.hh.

Constructor & Destructor Documentation

◆ scc_impl()

template<Automaton Aut>
vcsn::detail::scc_impl< Aut, kosaraju_tag >::scc_impl ( const Aut &  aut)
inline

Definition at line 224 of file scc.hh.

References vcsn::detail::reverse_postorder_impl< Aut >::dfs(), vcsn::has(), vcsn::detail::reverse_postorder_impl< Aut >::marked_, vcsn::reverse_postorder(), and vcsn::transpose().

Here is the call graph for this function:

Member Function Documentation

◆ components()

template<Automaton Aut>
const components_t& vcsn::detail::scc_impl< Aut, kosaraju_tag >::components ( ) const
inline

Definition at line 241 of file scc.hh.

◆ dfs()

template<Automaton Aut>
void vcsn::detail::scc_impl< Aut, kosaraju_tag >::dfs ( state_t  s)
inlineprivate

Definition at line 247 of file scc.hh.

References vcsn::detail::reverse_postorder_impl< Aut >::aut_, vcsn::detail::reverse_postorder_impl< Aut >::dfs(), vcsn::has(), vcsn::detail::reverse_postorder_impl< Aut >::marked_, and vcsn::detail::out().

Here is the call graph for this function:

Member Data Documentation

◆ aut_

template<Automaton Aut>
Aut vcsn::detail::scc_impl< Aut, kosaraju_tag >::aut_
private

Input automaton.

Definition at line 264 of file scc.hh.

◆ components_

template<Automaton Aut>
components_t vcsn::detail::scc_impl< Aut, kosaraju_tag >::components_
private

All components.

Definition at line 268 of file scc.hh.

◆ marked_

template<Automaton Aut>
std::unordered_set<state_t> vcsn::detail::scc_impl< Aut, kosaraju_tag >::marked_
private

Definition at line 269 of file scc.hh.

◆ num_

template<Automaton Aut>
std::size_t vcsn::detail::scc_impl< Aut, kosaraju_tag >::num_ = 0
private

The current component number.

Definition at line 266 of file scc.hh.


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