|
enum | path_info : size_t { path_visited
, path_distances
, path_previous
, path_shortest
} |
|
enum class | visit_mode : int { graph
, visit_bfs
, visit_dfs
} |
|
using | element_t = ElementType |
|
using | index_t = NodeIndexType |
|
using | indices_t = std::vector< index_t > |
|
using | node_names_t = std::vector< ElementType > |
|
using | node_index_t = NodeIndexType |
|
using | edge_weight_t = EdgeWeightType |
|
using | edge_type_t = edge< directed_edge, node_index_t, edge_weight_t > |
|
using | edge_container_t = EdgeContainerType< edge_type_t > |
|
using | index_container_t = IndexContainerType< index_t > |
|
using | node_container_t = NodeContainerType< index_container_t > |
|
using | element_container_t = NodeContainerType< element_t > |
|
using | ref_element_container_t = NodeContainerType< std::reference_wrapper< element_t > > |
|
using | const_ref_element_container_t = NodeContainerType< std::reference_wrapper< const element_t > > |
|
using | node_ref_t = std::tuple< ElementType &, index_container_t & > |
|
using | const_node_ref_t = std::tuple< const ElementType &, const index_container_t & > |
|
using | node_info_t = std::tuple< const ElementType &, const_ref_element_container_t > |
|
using | distances_t = std::vector< edge_weight_t > |
|
using | shortest_path_t = std::tuple< indices_t, distances_t, indices_t, edge_weight_t > |
|
|
const element_container_t & | get_node_values () const |
|
decltype(auto) | get_node_indices (index_t node_index) const |
|
decltype(auto) | get_node_indices (index_t node_index) |
|
decltype(auto) | get_edge (index_t index) |
|
decltype(auto) | get_edge (index_t index) const |
|
indices_t | get_edge_indices (index_t node_index) const |
|
indices_t | get_edge_indices (index_t node_index, const indices_t &visited) const |
|
auto | begin () |
|
auto | end () |
|
auto | cbegin () |
|
auto | cend () |
|
bool | empty () const |
|
decltype(auto) | adjacency_node_list (size_t node_index) |
|
decltype(auto) | adjacency_node_list (size_t node_index) const |
|
const node_container_t & | node_lists () const |
|
const element_container_t & | values () const |
|
auto | adjacent_node_values (size_t node_index) |
|
auto | adjacent_node_values (size_t node_index) const |
|
decltype(auto) | node_value (size_t node_index) |
|
decltype(auto) | node_value (size_t node_index) const |
|
template<typename IndexType_1 , typename IndexType_2 > |
auto | get_edge_range_iterators (IndexType_1 index_1, IndexType_2 index_2) const |
|
template<typename IndexType_1 , typename IndexType_2 , typename WeightType > |
auto | get_edge_range_iterators (IndexType_1 index_1, IndexType_2 index_2, WeightType weight) const |
|
auto | get_edge_range_iterators (const edge_type_t &e, bool bStrongCompare=false) const |
|
node_info_t | node_info (size_t node_index) const |
|
tpf::sstream & | get_node_name (tpf::sstream &os, size_t index) const |
|
tpf::sstream & | get_edge_definition (tpf::sstream &os, node_index_t index_1, node_index_t index_2, bool bProportional=false, const char *color="black") const |
|
tpf::sstream & | get_node_definition (tpf::sstream &os, size_t index) const |
|
tpf::sstream & | build_graph_edges (tpf::sstream &os, visit_mode vmode=visit_mode::graph, bool bProportional=false) const |
|
std::string | draw_graph_traversal (visit_mode vmode=visit_mode::visit_dfs) const |
|
tpf::sstream & | draw_graph_edges (tpf::sstream &os) const |
|
std::string | draw_graph (const std::string &graph_title="Plain Graph", const std::string &graph_style="", const std::string &best_viewed="dot") const |
|
std::string | build_graph (visit_mode vmode=visit_mode::graph) const |
|
| graph ()=default |
|
size_t | size () |
|
void | integrity_check_nodes_throws () const |
|
template<typename EleType , typename Type , typename... Types> |
void | emplace_back_node (EleType &&value, Type &&index0, Types &&... indices) |
|
auto | is_in_edge_list (const edge_type_t &e, bool bStrongCompare=false) const noexcept |
|
edge_container_t & | edges () noexcept |
|
const edge_container_t & | edges () const noexcept |
|
template<typename IndexType_1 , typename IndexType_2 , typename... WeightType> |
void | emplace_back_edge (IndexType_1 index_1, IndexType_2 index_2, WeightType... weight) |
|
auto | operator[] (size_t node_index) |
|
auto | operator[] (size_t node_index) const |
|
std::vector< index_t > | traverse_bfs (index_t start=0) const |
|
void | push_stack (std::deque< index_t > &stack, std::vector< char > &visited, size_t node_index) const |
|
void | move_vertex (indices_t &visited, indices_t &unvisited, index_t index) const |
|
element_t | translate (index_t index) const |
|
node_names_t | translate (const indices_t &indices) const |
|
shortest_path_t | shortest_path (index_t start_node=0, index_t end_node=0) const |
|
tpf::sstream & | draw_edge_list (tpf::sstream &os, const indices_t &visited, const distances_t &distances, const indices_t &previous_node, index_t start_node, index_t end_node) const |
|
void | draw_shortest_path (tpf::sstream &os, const indices_t &visited, const distances_t &distances, const indices_t &previous_node, index_t start_node, index_t end_node) const |
|
std::string | shortest_path_report (element_t start_pos, element_t end_pos) const |
|
std::vector< index_t > | traverse_dfs (index_t start=0) const |
|
template<int DirectedEdge, int EdgePlurality, typename ElementType, typename NodeIndexType, typename EdgeWeightType, template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
class tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >
Definition at line 426 of file tpf_graph.hpp.
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::const_node_ref_t = std::tuple<const ElementType&, const index_container_t&> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::const_ref_element_container_t = NodeContainerType<std::reference_wrapper<const element_t> > |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::distances_t = std::vector<edge_weight_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::edge_container_t = EdgeContainerType<edge_type_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::edge_weight_t = EdgeWeightType |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::element_container_t = NodeContainerType<element_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::element_t = ElementType |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::index_container_t = IndexContainerType<index_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::index_t = NodeIndexType |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::indices_t = std::vector<index_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_container_t = NodeContainerType<index_container_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_index_t = NodeIndexType |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_info_t = std::tuple<const ElementType&, const_ref_element_container_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_names_t = std::vector<ElementType> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_ref_t = std::tuple<ElementType&, index_container_t&> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::ref_element_container_t = NodeContainerType<std::reference_wrapper<element_t> > |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
using tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::shortest_path_t = std::tuple<indices_t, distances_t, indices_t, edge_weight_t> |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
Enumerator |
---|
path_visited | |
path_distances | |
path_previous | |
path_shortest | |
Definition at line 461 of file tpf_graph.hpp.
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
Enumerator |
---|
graph | |
visit_bfs | |
visit_dfs | |
Definition at line 465 of file tpf_graph.hpp.
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::graph |
( |
| ) |
|
|
default |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::adjacency_node_list |
( |
size_t |
node_index | ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::adjacency_node_list |
( |
size_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::adjacent_node_values |
( |
size_t |
node_index | ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::adjacent_node_values |
( |
size_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::begin |
( |
| ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
std::string tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::build_graph |
( |
visit_mode |
vmode = visit_mode::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType > | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::build_graph_edges |
( |
tpf::sstream & |
os, |
|
|
visit_mode |
vmode = visit_mode::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType > , |
|
|
bool |
bProportional = false |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::cbegin |
( |
| ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::cend |
( |
| ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::draw_edge_list |
( |
tpf::sstream & |
os, |
|
|
const indices_t & |
visited, |
|
|
const distances_t & |
distances, |
|
|
const indices_t & |
previous_node, |
|
|
index_t |
start_node, |
|
|
index_t |
end_node |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
std::string tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::draw_graph |
( |
const std::string & |
graph_title = "Plain Graph" , |
|
|
const std::string & |
graph_style = "" , |
|
|
const std::string & |
best_viewed = "dot" |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::draw_graph_edges |
( |
tpf::sstream & |
os | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
void tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::draw_shortest_path |
( |
tpf::sstream & |
os, |
|
|
const indices_t & |
visited, |
|
|
const distances_t & |
distances, |
|
|
const indices_t & |
previous_node, |
|
|
index_t |
start_node, |
|
|
index_t |
end_node |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
const edge_container_t & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::edges |
( |
| ) |
const |
|
inlinenoexcept |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
edge_container_t & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::edges |
( |
| ) |
|
|
inlinenoexcept |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<typename IndexType_1 , typename IndexType_2 , typename... WeightType>
void tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::emplace_back_edge |
( |
IndexType_1 |
index_1, |
|
|
IndexType_2 |
index_2, |
|
|
WeightType... |
weight |
|
) |
| |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<typename EleType , typename Type , typename... Types>
void tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::emplace_back_node |
( |
EleType && |
value, |
|
|
Type && |
index0, |
|
|
Types &&... |
indices |
|
) |
| |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
bool tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::empty |
( |
| ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::end |
( |
| ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge |
( |
index_t |
index | ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge |
( |
index_t |
index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge_definition |
( |
tpf::sstream & |
os, |
|
|
node_index_t |
index_1, |
|
|
node_index_t |
index_2, |
|
|
bool |
bProportional = false , |
|
|
const char * |
color = "black" |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
indices_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge_indices |
( |
index_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
indices_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge_indices |
( |
index_t |
node_index, |
|
|
const indices_t & |
visited |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge_range_iterators |
( |
const edge_type_t & |
e, |
|
|
bool |
bStrongCompare = false |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<typename IndexType_1 , typename IndexType_2 >
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge_range_iterators |
( |
IndexType_1 |
index_1, |
|
|
IndexType_2 |
index_2 |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<typename IndexType_1 , typename IndexType_2 , typename WeightType >
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_edge_range_iterators |
( |
IndexType_1 |
index_1, |
|
|
IndexType_2 |
index_2, |
|
|
WeightType |
weight |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_node_definition |
( |
tpf::sstream & |
os, |
|
|
size_t |
index |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_node_indices |
( |
index_t |
node_index | ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_node_indices |
( |
index_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_node_name |
( |
tpf::sstream & |
os, |
|
|
size_t |
index |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
const element_container_t & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::get_node_values |
( |
| ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
void tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::integrity_check_nodes_throws |
( |
| ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::is_in_edge_list |
( |
const edge_type_t & |
e, |
|
|
bool |
bStrongCompare = false |
|
) |
| const |
|
inlinenoexcept |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
void tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::move_vertex |
( |
indices_t & |
visited, |
|
|
indices_t & |
unvisited, |
|
|
index_t |
index |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
node_info_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_info |
( |
size_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
const node_container_t & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_lists |
( |
| ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_value |
( |
size_t |
node_index | ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
decltype(auto) tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::node_value |
( |
size_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::operator[] |
( |
size_t |
node_index | ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
auto tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::operator[] |
( |
size_t |
node_index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
void tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::push_stack |
( |
std::deque< index_t > & |
stack, |
|
|
std::vector< char > & |
visited, |
|
|
size_t |
node_index |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
shortest_path_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::shortest_path |
( |
index_t |
start_node = 0 , |
|
|
index_t |
end_node = 0 |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
std::string tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::shortest_path_report |
( |
element_t |
start_pos, |
|
|
element_t |
end_pos |
|
) |
| const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
size_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::size |
( |
| ) |
|
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
node_names_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::translate |
( |
const indices_t & |
indices | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
element_t tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::translate |
( |
index_t |
index | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
std::vector< index_t > tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::traverse_bfs |
( |
index_t |
start = 0 | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
std::vector< index_t > tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::traverse_dfs |
( |
index_t |
start = 0 | ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
const element_container_t & tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::values |
( |
| ) |
const |
|
inline |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
template<int , typename , typename... >
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
tpf::sstream & operator<< |
( |
tpf::sstream & |
os, |
|
|
const graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType > & |
g |
|
) |
| |
|
friend |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
constexpr int tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::directed_edge = DirectedEdge |
|
staticconstexpr |
template<int DirectedEdge, int EdgePlurality, typename ElementType , typename NodeIndexType , typename EdgeWeightType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType, template< typename, typename... > class EdgeContainerType>
constexpr int tpf::graph::graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >::edge_multiplicity = EdgePlurality |
|
staticconstexpr |