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.
graph.hpp File Reference
#include "timemory/data/ring_buffer_allocator.hpp"
#include "timemory/data/shared_stateful_allocator.hpp"
#include "timemory/macros/compiler.hpp"
#include "timemory/macros/os.hpp"
#include "timemory/storage/types.hpp"
#include "timemory/tpls/cereal/cereal.hpp"
#include "timemory/units.hpp"
#include <cassert>
#include <cstddef>
#include <deque>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <memory>
#include <queue>
#include <set>
#include <stdexcept>
#include <utility>
#include <vector>
+ Include dependency graph for graph.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tim::tgraph_node< T >
 A node in the graph, combining links to other nodes as well as the actual data. More...
 
class  tim::graph< T, AllocatorT >
 Arbitrary Graph / Tree (i.e. binary-tree but not binary). It is unlikely that this class will interacted with directly. More...
 
class  tim::graph< T, AllocatorT >::iterator_base
 Base class for iterators, only pointers stored, no traversal logic. More...
 
class  tim::graph< T, AllocatorT >::pre_order_iterator
 Depth-first iterator, first accessing the node, then its children. More...
 
class  tim::graph< T, AllocatorT >::sibling_iterator
 Iterator which traverses only the nodes which are siblings of each other. More...
 

Namespaces

namespace  tim
 

Functions

template<typename T >
void tim::print_graph_bracketed (const graph< T > &t, std::ostream &os=std::cout)
 
template<typename T >
void tim::print_subgraph_bracketed (const graph< T > &t, typename graph< T >::iterator root, std::ostream &os=std::cout)
 
template<typename T , typename Formatter = std::function<std::string(const T&)>>
void tim::print_graph (const tim::graph< T > &t, Formatter format, std::ostream &str=std::cout)
 
template<typename T , typename Formatter = std::function<std::string(const T&)>>
void tim::print_subgraph (const tim::graph< T > &t, Formatter format, typename tim::graph< T >::iterator root, std::ostream &str=std::cout)
 
template<typename T >
void tim::print_graph (const tim::graph< T > &t, std::ostream &str)
 
template<typename T , typename Formatter = std::function<std::string(const T&)>>
void tim::print_graph_hierarchy (const tim::graph< T > &t, Formatter format, std::ostream &str=std::cout)
 
template<typename T , typename Formatter = std::function<std::string(const T&)>>
void tim::print_subgraph_hierarchy (const tim::graph< T > &t, Formatter format, typename tim::graph< T >::iterator root, std::ostream &str=std::cout)