mc2lib
Public Member Functions | Private Attributes | List of all members
mc2lib::sets::Relation< Ts >::R_impl Class Reference

#include <sets.hpp>

Public Member Functions

 R_impl (const Relation *src, Set< Ts > *visited, FlagSet *visiting, bool is_tran_cl, SearchMode mode)
 
bool DfsRec (const Element &e1, const Element &e2) const
 
bool DfsRecFindCycle (const Element &start) const
 

Private Attributes

const Relationsrc_
 
Set< Ts > * visited_
 
FlagSetvisiting_
 
bool is_tran_cl_
 
SearchMode mode_
 

Detailed Description

template<class Ts>
class mc2lib::sets::Relation< Ts >::R_impl

Helper class to check if two elements are related.

Constructor & Destructor Documentation

§ R_impl()

template<class Ts>
mc2lib::sets::Relation< Ts >::R_impl::R_impl ( const Relation src,
Set< Ts > *  visited,
FlagSet visiting,
bool  is_tran_cl,
SearchMode  mode 
)
inline

Member Function Documentation

§ DfsRec()

template<class Ts>
bool mc2lib::sets::Relation< Ts >::R_impl::DfsRec ( const Element e1,
const Element e2 
) const
inline

Recursive DFS implementation, searching if there exists a path from e1 to e2.

§ DfsRecFindCycle()

template<class Ts>
bool mc2lib::sets::Relation< Ts >::R_impl::DfsRecFindCycle ( const Element start) const
inline

DFS optimized to just find a cycle; elides some branches that are not needed compared to DfsRec.

Member Data Documentation

§ is_tran_cl_

template<class Ts>
bool mc2lib::sets::Relation< Ts >::R_impl::is_tran_cl_
private

§ mode_

template<class Ts>
SearchMode mc2lib::sets::Relation< Ts >::R_impl::mode_
private

§ src_

template<class Ts>
const Relation* mc2lib::sets::Relation< Ts >::R_impl::src_
private

§ visited_

template<class Ts>
Set<Ts>* mc2lib::sets::Relation< Ts >::R_impl::visited_
private

§ visiting_

template<class Ts>
FlagSet* mc2lib::sets::Relation< Ts >::R_impl::visiting_
private

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