timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
|
Typedefs | |
template<template< typename > class Predicate, typename Sequence > | |
using | filter_true_t = impl::filter_true< Predicate, Sequence > |
template<template< typename > class Predicate, typename Sequence > | |
using | filter_false_t = impl::filter_false< Predicate, Sequence > |
template<template< typename > class Predicate, typename... Sequence> | |
using | get_true_types_t = typename get_true_types< Predicate, Sequence... >::type |
template<template< typename > class Predicate, typename... Sequence> | |
using | get_false_types_t = typename get_false_types< Predicate, Sequence... >::type |
template<typename T > | |
using | non_quirk_t = impl::filter_true< concepts::is_quirk_type, T > |
template<typename T > | |
using | non_placeholder_t = impl::filter_true< concepts::is_placeholder, T > |
template<typename... Types> | |
using | implemented_t = impl::filter_false_after_decay_t< trait::is_available, type_list< Types... > > |
filter out any types that are not available More... | |
template<typename T > | |
using | implemented_list_t = impl::filter_false_after_decay_t< trait::is_available, T > |
template<typename T > | |
using | available_t = impl::filter_false< trait::is_available, T > |
template<typename Tp , typename... Types> | |
using | append_type = impl::append_type< Tp, Types... > |
append type to a tuple/bundler More... | |
template<typename Tp , typename... Types> | |
using | remove_type = impl::remove_type< Tp, Types... > |
remove any instances of a type from a tuple/bundler More... | |
template<typename Tp , typename Types > | |
using | append_type_t = typename impl::append_type< Tp, Types >::type |
append type to a tuple/bundler More... | |
template<typename Tp , typename Types > | |
using | remove_type_t = typename impl::remove_type< Tp, Types >::type |
remove any instances of a type from a tuple/bundler More... | |
template<typename Types > | |
using | is_one_of_integral = typename impl::is_one_of_integral< Types > |
check if type is in expansion More... | |
template<typename T > | |
using | remove_duplicates_t = typename impl::unique< T, type_list<> >::type |
template<typename T , typename TupleT = type_list<>> | |
using | unique_t = convert_t< typename impl::unique< T, type_list<> >::type, TupleT > |
template<typename LhsT , typename RhsT > | |
using | subtract_t = typename impl::subtract< LhsT, RhsT >::type |
template<typename... Types> | |
using | filter_gotchas = get_false_types_t< trait::is_gotcha, std::tuple< Types... > > |
filter out any types that are not available More... | |
template<typename T > | |
using | filter_gotchas_t = get_false_types_t< trait::is_gotcha, T > |
template<typename T > | |
using | filter_empty_t = get_true_types_t< concepts::is_empty, T > |
template<typename TypeList > | |
using | get_data_type_t = typename impl::template get_data_tuple< TypeList >::type |
get the tuple of types More... | |
template<typename TypeList > | |
using | get_data_value_t = typename impl::template get_data_tuple< TypeList >::value_type |
get the tuple of values More... | |
template<typename TypeList > | |
using | get_data_label_t = typename impl::template get_data_tuple< TypeList >::label_type |
get the tuple of pair of descriptor and value More... | |
template<template< typename > class TraitT, typename TypeList > | |
using | get_trait_type_t = impl::get_trait_type_t< TraitT, convert_t< TypeList, type_list<> > > |
get the tuple of types More... | |
template<template< typename > class PrioT, typename Tuple , typename BegT = type_list<>, typename EndT = type_list<>> | |
using | sort = convert_t< typename ::tim::mpl::impl::sortT< PrioT, convert_t< Tuple, type_list<> >, convert_t< BegT, type_list<> >, convert_t< EndT, type_list<> > >::type, std::tuple<> > |
template<typename... Types> | |
using | runtime_configurable_t = typename get_true_types< concepts::is_runtime_configurable, Types... >::type |
template<typename... Types> | |
using | external_function_wrappers_t = typename get_true_types< concepts::is_external_function_wrapper, Types... >::type |
template<typename Tp > | |
using | negative_start_priority = impl::negative_start_priority< Tp > |
template<typename Tp > | |
using | positive_start_priority = impl::positive_start_priority< Tp > |
template<typename Tp > | |
using | negative_stop_priority = impl::negative_stop_priority< Tp > |
template<typename Tp > | |
using | positive_stop_priority = impl::positive_stop_priority< Tp > |
template<typename... T> | |
using | union_index_sequence_t = typename union_index_sequence< T... >::type |
Functions | |
template<typename Tp , typename std::enable_if<(std::is_arithmetic< Tp >::value), int >::type = 0> | |
constexpr auto | get_size (const Tp &, std::tuple<>) -> size_t |
template<typename Tp > | |
auto | get_size (const Tp &_val, std::tuple<>) -> decltype(_val.size(), size_t()) |
template<typename Tp , typename std::enable_if<(std::is_arithmetic< Tp >::value), int >::type = 0> | |
constexpr auto | get_size (const Tp &, type_list<>) -> size_t |
template<typename Tp > | |
auto | get_size (const Tp &_val, type_list<>) -> decltype(_val.size(), size_t()) |
template<typename Tp , size_t... Idx> | |
constexpr auto | get_size (const Tp &_val, index_sequence< Idx... >) -> decltype(std::get< 0 >(_val), size_t()) |
template<typename Tp > | |
auto | get_size (const Tp &_val) -> decltype(get_size(_val, get_index_sequence< decay_t< Tp > >::value)) |
template<typename T > | |
auto | resize (T &,...) -> void |
template<typename T > | |
auto | resize (T &_targ, size_t _n) -> decltype(_targ.resize(_n), void()) |
template<typename Tp > | |
void | assign (Tp &_targ, const Tp &_val,...) |
template<typename Tp , typename Vp , typename ValueType = typename Tp::value_type> | |
auto | assign (Tp &_targ, const Vp &_val, type_list<>) -> decltype(_targ[0], void()) |
template<typename Tp , size_t... Idx> | |
auto | assign (Tp &_targ, const Tp &_val, index_sequence< Idx... >) -> decltype(std::get< 0 >(_val), void()) |
template<typename Tp , typename Vp , size_t... Idx, enable_if_t<!std::is_same< Tp, Vp >::value, int > = 0> | |
auto | assign (Tp &_targ, const Vp &_val, index_sequence< Idx... >) -> decltype(std::get< 0 >(_targ)= *std::begin(_val), void()) |
template<typename Tp , typename Vp > | |
void | assign (Tp &_targ, const Vp &_val) |
template<typename Rp , typename Tp > | |
decltype(auto) | get_reference_tuple (Tp &&_tuple) |
template<typename BundleT , typename FuncT , typename... Args> | |
auto | execute (BundleT &&_bundle, FuncT &&_func, Args &&... _args, enable_if_t< is_invocable< FuncT, Args... >::value &&!std::is_void< std::result_of_t< FuncT(Args...)> >::value, int >) |
template<typename BundleT , typename FuncT , typename... Args> | |
auto | execute (BundleT &&_bundle, FuncT &&_func, Args &&... _args, enable_if_t< is_invocable< FuncT, Args... >::value &&std::is_void< std::result_of_t< FuncT(Args...)> >::value, int >) |
template<typename BundleT , typename ValueT > | |
auto | execute (BundleT &&_bundle, ValueT &&_value, enable_if_t<!is_invocable< ValueT >::value, long >) |
struct tim::mpl::function_traits |
Definition at line 51 of file function_traits.hpp.
struct tim::mpl::get_false_types |
generic alias for extracting all types with a specified trait disabled
Definition at line 282 of file available.hpp.
Class Members | ||
---|---|---|
typedef filter_true< Predicate, tuple< Sequence... > > | type |
struct tim::mpl::get_false_types< Predicate, type_list< Sequence... > > |
Definition at line 294 of file available.hpp.
Class Members | ||
---|---|---|
typedef convert_t< filter_true< Predicate, tuple< Sequence... > >, type_list<> > | type |
struct tim::mpl::get_true_types |
generic alias for extracting all types with a specified trait enabled
Definition at line 257 of file available.hpp.
Class Members | ||
---|---|---|
typedef filter_false< Predicate, tuple< Sequence... > > | type |
struct tim::mpl::get_true_types< Predicate, type_list< Sequence... > > |
Definition at line 269 of file available.hpp.
Class Members | ||
---|---|---|
typedef convert_t< filter_false< Predicate, tuple< Sequence... > >, type_list<> > | type |
struct tim::mpl::lightweight |
struct tim::mpl::piecewise_ignore |
struct tim::mpl::piecewise_select |
struct tim::mpl::push_back |
struct tim::mpl::push_back< Hybrid< Lhs< LhsTypes... >, Rhs< RhsTypes... > >, T > |
Class Members | ||
---|---|---|
typedef Hybrid< Lhs< LhsTypes..., T >, Rhs< RhsTypes... > > | type |
struct tim::mpl::push_back< Tuple< Types... >, T > |
struct tim::mpl::union_index_of |
struct tim::mpl::union_index_sequence |
struct tim::mpl::union_index_sequence< LhsT< Lhs... >, RhsT< Rhs... > > |
Class Members | ||
---|---|---|
typedef index_sequence< union_index_of< decay_t< Lhs >, RhsT< decay_t< Rhs >... > >::value(0)... > | type |
using tim::mpl::append_type = typedef impl::append_type<Tp, Types...> |
append type to a tuple/bundler
Definition at line 401 of file filters.hpp.
using tim::mpl::append_type_t = typedef typename impl::append_type<Tp, Types>::type |
append type to a tuple/bundler
Definition at line 409 of file filters.hpp.
using tim::mpl::available_t = typedef impl::filter_false<trait::is_available, T> |
Definition at line 324 of file available.hpp.
using tim::mpl::external_function_wrappers_t = typedef typename get_true_types<concepts::is_external_function_wrapper, Types...>::type |
Definition at line 485 of file filters.hpp.
using tim::mpl::filter_empty_t = typedef get_true_types_t<concepts::is_empty, T> |
Definition at line 442 of file filters.hpp.
using tim::mpl::filter_false_t = typedef impl::filter_false<Predicate, Sequence> |
Definition at line 251 of file available.hpp.
using tim::mpl::filter_gotchas = typedef get_false_types_t<trait::is_gotcha, std::tuple<Types...> > |
filter out any types that are not available
Definition at line 436 of file filters.hpp.
using tim::mpl::filter_gotchas_t = typedef get_false_types_t<trait::is_gotcha, T> |
Definition at line 439 of file filters.hpp.
using tim::mpl::filter_true_t = typedef impl::filter_true<Predicate, Sequence> |
Definition at line 248 of file available.hpp.
using tim::mpl::get_data_label_t = typedef typename impl::template get_data_tuple<TypeList>::label_type |
get the tuple of pair of descriptor and value
Definition at line 460 of file filters.hpp.
using tim::mpl::get_data_type_t = typedef typename impl::template get_data_tuple<TypeList>::type |
get the tuple of types
Definition at line 452 of file filters.hpp.
using tim::mpl::get_data_value_t = typedef typename impl::template get_data_tuple<TypeList>::value_type |
get the tuple of values
Definition at line 456 of file filters.hpp.
using tim::mpl::get_false_types_t = typedef typename get_false_types<Predicate, Sequence...>::type |
Definition at line 301 of file available.hpp.
using tim::mpl::get_trait_type_t = typedef impl::get_trait_type_t<TraitT, convert_t<TypeList, type_list<> >> |
get the tuple of types
Definition at line 464 of file filters.hpp.
using tim::mpl::get_true_types_t = typedef typename get_true_types<Predicate, Sequence...>::type |
Definition at line 276 of file available.hpp.
using tim::mpl::implemented_list_t = typedef impl::filter_false_after_decay_t<trait::is_available, T> |
Definition at line 321 of file available.hpp.
using tim::mpl::implemented_t = typedef impl::filter_false_after_decay_t<trait::is_available, type_list<Types...> > |
filter out any types that are not available
Definition at line 317 of file available.hpp.
using tim::mpl::is_one_of_integral = typedef typename impl::is_one_of_integral<Types> |
check if type is in expansion
Definition at line 417 of file filters.hpp.
using tim::mpl::negative_start_priority = typedef impl::negative_start_priority<Tp> |
Definition at line 489 of file filters.hpp.
using tim::mpl::negative_stop_priority = typedef impl::negative_stop_priority<Tp> |
Definition at line 495 of file filters.hpp.
using tim::mpl::non_placeholder_t = typedef impl::filter_true<concepts::is_placeholder, T> |
Definition at line 313 of file available.hpp.
using tim::mpl::non_quirk_t = typedef impl::filter_true<concepts::is_quirk_type, T> |
Definition at line 310 of file available.hpp.
using tim::mpl::positive_start_priority = typedef impl::positive_start_priority<Tp> |
Definition at line 492 of file filters.hpp.
using tim::mpl::positive_stop_priority = typedef impl::positive_stop_priority<Tp> |
Definition at line 498 of file filters.hpp.
using tim::mpl::remove_duplicates_t = typedef typename impl::unique<T, type_list<> >::type |
Definition at line 420 of file filters.hpp.
using tim::mpl::remove_type = typedef impl::remove_type<Tp, Types...> |
remove any instances of a type from a tuple/bundler
Definition at line 405 of file filters.hpp.
using tim::mpl::remove_type_t = typedef typename impl::remove_type<Tp, Types>::type |
remove any instances of a type from a tuple/bundler
Definition at line 413 of file filters.hpp.
using tim::mpl::runtime_configurable_t = typedef typename get_true_types<concepts::is_runtime_configurable, Types...>::type |
Definition at line 481 of file filters.hpp.
using tim::mpl::sort = typedef convert_t<typename ::tim::mpl::impl::sortT<PrioT, convert_t<Tuple, type_list<> >, convert_t<BegT, type_list<> >, convert_t<EndT, type_list<> >>::type, std::tuple<> > |
Definition at line 474 of file filters.hpp.
using tim::mpl::subtract_t = typedef typename impl::subtract<LhsT, RhsT>::type |
Definition at line 426 of file filters.hpp.
using tim::mpl::union_index_sequence_t = typedef typename union_index_sequence<T...>::type |
using tim::mpl::unique_t = typedef convert_t<typename impl::unique<T, type_list<> >::type, TupleT> |
Definition at line 423 of file filters.hpp.
auto tim::mpl::assign | ( | Tp & | _targ, |
const Tp & | _val, | ||
index_sequence< Idx... > | |||
) | -> decltype(std::get<0>(_val), void()) |
Definition at line 963 of file types.hpp.
void tim::mpl::assign | ( | Tp & | _targ, |
const Tp & | _val, | ||
... | |||
) |
auto tim::mpl::assign | ( | Tp & | _targ, |
const Vp & | _val, | ||
index_sequence< Idx... > | |||
) | -> decltype(std::get<0>(_targ) = *std::begin(_val), void()) |
auto tim::mpl::assign | ( | Tp & | _targ, |
const Vp & | _val, | ||
type_list<> | |||
) | -> decltype(_targ[0], void()) |
Definition at line 950 of file types.hpp.
auto tim::mpl::execute | ( | BundleT && | _bundle, |
FuncT && | _func, | ||
Args &&... | _args, | ||
enable_if_t< is_invocable< FuncT, Args... >::value &&!std::is_void< std::result_of_t< FuncT(Args...)> >::value, int > | |||
) |
Definition at line 40 of file bundle_execute.hpp.
References tim::_args.
Referenced by tim::auto_base_bundle< Tag, CompT, BundleT >::execute(), tim::lightweight_tuple< Types >::execute(), tim::mpl::execution_handler< BundleT, DataT >::get(), tim::mpl::execution_handler< BundleT, void >::get(), tim::mpl::execution_handler< BundleT, DataT >::get_labeled(), and tim::mpl::execution_handler< BundleT, void >::get_labeled().
auto tim::mpl::execute | ( | BundleT && | _bundle, |
FuncT && | _func, | ||
Args &&... | _args, | ||
enable_if_t< is_invocable< FuncT, Args... >::value &&std::is_void< std::result_of_t< FuncT(Args...)> >::value, int > | |||
) |
Definition at line 53 of file bundle_execute.hpp.
References tim::_args.
auto tim::mpl::execute | ( | BundleT && | _bundle, |
ValueT && | _value, | ||
enable_if_t<!is_invocable< ValueT >::value, long > | |||
) |
Definition at line 64 of file bundle_execute.hpp.
Definition at line 1075 of file types.hpp.
Referenced by tim::lightweight_tuple< Types >::start(), and tim::lightweight_tuple< Types >::stop().
|
constexpr |
Definition at line 877 of file types.hpp.
Referenced by tim::math::divide(), tim::math::minus(), tim::math::multiply(), and tim::math::plus().
|
constexpr |
auto tim::mpl::get_size | ( | const Tp & | _val | ) | -> decltype(get_size(_val, get_index_sequence<decay_t<Tp>>::value)) |
|
constexpr |
auto tim::mpl::get_size | ( | const Tp & | _val, |
std::tuple<> | |||
) | -> decltype(_val.size(), size_t()) |
auto tim::mpl::resize | ( | T & | , |
... | |||
) | -> void |
Definition at line 929 of file types.hpp.
Referenced by tim::math::divide(), tim::math::minus(), tim::math::multiply(), and tim::math::plus().