template<typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs>
class ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
CRTP base for MADNESS-based TT classes
- Template Parameters
-
keyT | a Key type |
output_terminalsT | |
derivedT | |
input_valueTs | ttg::typelist of value types (no references; pointers are OK) encoding the types of input values flowing into this TT; a const type indicates nonmutating (read-only) use, nonconst type indicates mutating use (e.g. the corresponding input can be used as scratch, moved-from, etc.) |
Definition at line 188 of file ttg.h.
|
ttg::World | get_world () const override final |
|
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>> |
std::enable_if_t< key_is_void, void > | set_argstream_size (std::size_t size) |
|
template<std::size_t i> |
void | set_static_argstream_size (std::size_t size) |
|
template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>> |
std::enable_if_t<!key_is_void, void > | set_argstream_size (const Key &key, std::size_t size) |
|
template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>> |
std::enable_if_t<!key_is_void, void > | finalize_argstream (const Key &key) |
| finalizes stream for input i More...
|
|
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>> |
std::enable_if_t< key_is_void, void > | finalize_argstream () |
| finalizes stream for input i More...
|
|
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>> |
| TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT()) |
|
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>> |
| TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT()) |
|
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>> |
| TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT()) |
|
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>> |
| TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT()) |
|
virtual | ~TT () |
|
template<std::size_t i, typename Reducer > |
void | set_input_reducer (Reducer &&reducer) |
|
template<std::size_t i, typename Reducer > |
void | set_input_reducer (Reducer &&reducer, std::size_t size) |
|
template<typename Keymap > |
void | set_keymap (Keymap &&km) |
|
auto | get_priomap (void) const |
|
template<typename Priomap > |
void | set_priomap (Priomap &&pm) |
|
template<typename Constraint > |
void | add_constraint (Constraint &&c) |
|
template<typename Constraint , typename Mapper > |
void | add_constraint (std::shared_ptr< Constraint > c, Mapper &&map) |
|
template<typename Constraint , typename Mapper > |
void | add_constraint (Constraint c, Mapper &&map) |
|
void | make_executable () override |
| implementation of TTBase::make_executable() More...
|
|
void | fence () override |
| Waits for the entire TTG associated with this TT to be completed (collective) More...
|
|
template<std::size_t i> |
std::tuple_element_t< i, input_terminals_type > * | in () |
| Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned. More...
|
|
template<std::size_t i> |
std::tuple_element_t< i, output_terminalsT > * | out () |
| Returns pointer to output terminal for purpose of connection — terminal cannot be copied, moved or assigned. More...
|
|
template<typename Key = keyT> |
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > | invoke (const Key &key, const input_values_tuple_type &args) |
| Manual injection of a task with all input arguments specified as a tuple. More...
|
|
template<typename Key = keyT> |
std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > | invoke (const input_values_tuple_type &args) |
| Manual injection of a key-free task with all input arguments specified as a tuple. More...
|
|
template<typename Key = keyT> |
std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > | invoke (const Key &key) |
| Manual injection of a task that has no arguments. More...
|
|
template<typename Key = keyT> |
std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > | invoke () |
| Manual injection of a task that has no key or arguments. More...
|
|
void | invoke () override |
|
void | set_defer_writer (bool _) |
|
bool | get_defer_writer (bool _) |
|
decltype(keymap) const & | get_keymap () const |
|
template<typename Key > |
std::enable_if_t<!ttg::meta::is_void_v< Key >, int > | owner (const Key &key) const |
|
template<typename Key > |
std::enable_if_t< ttg::meta::is_void_v< Key >, int > | owner () const |
|
virtual | ~TTBase ()=default |
|
bool | set_trace_instance (bool value) |
|
bool | tracing () const |
|
template<typename T , typename... Ts> |
void | trace (const T &t, const Ts &...ts) |
| Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
|
|
bool | set_lazy_pull_instance (bool value) |
|
bool | is_lazy_pull () |
|
std::optional< std::reference_wrapper< const TTBase > > | ttg () const |
|
const TTBase * | ttg_ptr () const |
|
bool | is_ttg () const |
|
void | set_name (const std::string &name) |
| Sets the name of this operation. More...
|
|
const std::string & | get_name () const |
| Gets the name of this operation. More...
|
|
std::string | get_class_name () const |
| Gets the demangled class name (uses RTTI) More...
|
|
const std::vector< TerminalBase * > & | get_inputs () const |
| Returns the vector of input terminals. More...
|
|
const std::vector< TerminalBase * > & | get_outputs () const |
| Returns the vector of output terminals. More...
|
|
ttg::TerminalBase * | in (size_t i) |
| Returns a pointer to the i'th input terminal. More...
|
|
ttg::TerminalBase * | out (size_t i) |
| Returns a pointer to the i'th output terminal. More...
|
|
template<std::size_t i> |
ttg::TerminalBase * | in () |
| Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
|
|
template<std::size_t i> |
ttg::TerminalBase * | out () |
| Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
|
|
auto | get_instance_id () const |
|
virtual void | release () |
|
bool | is_executable () const |
|
|
const auto & | get_output_terminals () const |
|
template<typename terminalT , std::size_t i, typename Key > |
void | invoke_pull_terminal (terminalT &in, const Key &key, TTArgs *args) |
|
template<std::size_t i, typename Key > |
void | get_terminal_data (const int owner, const Key &key) |
|
template<std::size_t... IS, typename Key = keyT> |
void | invoke_pull_terminals (std::index_sequence< IS... >, const Key &key, TTArgs *args) |
|
template<std::size_t i, typename Key , typename Value > |
void | set_arg (const Key &key, Value &&value) |
|
template<std::size_t i, typename Key , typename Value > |
std::enable_if_t<!ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > | set_arg (const Key &key) |
|
template<std::size_t i, typename Key = keyT, typename Value > |
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > | set_arg (Value &&value) |
|
template<std::size_t i, typename Key = keyT, typename Value > |
std::enable_if_t< ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > | set_arg () |
|
template<typename Key , typename... Ts, size_t... Is, size_t... Js> |
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > | set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args) |
|
template<typename Key , typename... Ts, size_t... Is> |
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > | set_args (std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args) |
|
template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js> |
std::enable_if_t< ttg::meta::is_void_v< Key >, void > | set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args) |
|
template<typename Key = keyT, typename... Ts, size_t... Is> |
std::enable_if_t< ttg::meta::is_void_v< Key >, void > | set_args (std::index_sequence< Is... > is, const std::tuple< Ts... > &args) |
|
void | set_input (size_t i, TerminalBase *t) |
|
void | set_output (size_t i, TerminalBase *t) |
|
template<bool out, typename terminalT , std::size_t i, typename setfuncT > |
void | register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc) |
|
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT > |
void | register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc) |
|
template<typename terminalsT , typename namesT > |
void | register_input_terminals (terminalsT &terms, const namesT &names) |
|
template<typename terminalsT , typename namesT > |
void | register_output_terminals (terminalsT &terms, const namesT &names) |
|
template<std::size_t... IS, typename terminalsT , typename setfuncT > |
void | set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc) |
|
template<typename terminalsT , typename setfuncT > |
void | set_terminals (const terminalsT &terms, const setfuncT setfunc) |
|
| TTBase (TTBase &&other) |
|
TTBase & | operator= (TTBase &&other) |
|
| TTBase (const std::string &name, size_t numins, size_t numouts) |
|
void | set_outputs_tls_ptr () |
|
void | set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr) |
|