ttg 1.0.0-alpha
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ttg::Traverse< TTVisitor, InVisitor, OutVisitor > Class Template Reference

Traverses a graph of ops in depth-first manner following out edges. More...

#include <traverse.h>

Inheritance diagram for ttg::Traverse< TTVisitor, InVisitor, OutVisitor >:
[legend]
Collaboration diagram for ttg::Traverse< TTVisitor, InVisitor, OutVisitor >:
[legend]

Public Member Functions

template<typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>, typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
 Traverse (TTVisitor_ &&tt_v=TTVisitor_{}, InVisitor_ &&in_v=InVisitor_{}, OutVisitor_ &&out_v=OutVisitor_{})
 
const TTVisitor & tt_visitor () const
 
const InVisitor & in_visitor () const
 
const OutVisitor & out_visitor () const
 
template<typename TTBasePtr , typename ... TTBasePtrs>
std::enable_if_t< std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtr >()))> > &&std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtrs >()))> bool operator() (TTBasePtr &&op, TTBasePtrs &&... ops)
 

Detailed Description

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
class ttg::Traverse< TTVisitor, InVisitor, OutVisitor >

Traverses a graph of ops in depth-first manner following out edges.

Template Parameters
TTVisitorA Callable type that visits each TT
InVisitorA Callable type that visits each In terminal
OutVisitorA Callable type that visits each Out terminal

Definition at line 144 of file traverse.h.

Constructor & Destructor Documentation

◆ Traverse()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
template<typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>, typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::Traverse ( TTVisitor_ &&  tt_v = TTVisitor_{},
InVisitor_ &&  in_v = InVisitor_{},
OutVisitor_ &&  out_v = OutVisitor_{} 
)
inline

Definition at line 159 of file traverse.h.

Member Function Documentation

◆ in_visitor()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
const InVisitor & ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::in_visitor ( ) const
inline

Definition at line 165 of file traverse.h.

◆ operator()()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
template<typename TTBasePtr , typename ... TTBasePtrs>
std::enable_if_t< std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtr >()))> > &&std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtrs >()))> bool ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::operator() ( TTBasePtr &&  op,
TTBasePtrs &&...  ops 
)
inline

Definition at line 172 of file traverse.h.

Here is the call graph for this function:

◆ out_visitor()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
const OutVisitor & ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::out_visitor ( ) const
inline

Definition at line 166 of file traverse.h.

◆ tt_visitor()

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
const TTVisitor & ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::tt_visitor ( ) const
inline

Definition at line 164 of file traverse.h.


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