Visitor object that is passed as the second paramter to the vertex operator for KLA algorithms.
More...
|
| kla_visitor (Parent const &parent) |
|
template<typename NeighborOp > |
Parent::template make_wrapped_neighbor_operator< NeighborOp >::type | derived_visitor (NeighborOp &&uf) const |
| Create a wrapped neighbor operator that will be sent.
|
|
template<class NeighborOp > |
void | visit (descriptor_type const &target, NeighborOp &&neighbor_op) const |
| Visits the target vertex and apply the provided update functor. More...
|
|
template<class NeighborOp > |
void | visit (descriptor_type const &target, NeighborOp &&neighbor_op, default_info) const |
| Visits the target vertex and apply the provided update functor, with a given priority. More...
|
|
template<class Vertex , class NeighborOp > |
void | visit_all_edges (Vertex source, NeighborOp &&neighbor_op) const |
| Visits all neighbors of the provided source vertex and applies the provided update functor on each of them. More...
|
|
template<class Vertex , class NeighborOp , typename VisitPredicate > |
void | visit_all_edges_if (Vertex &&source, NeighborOp &&neighbor_op, VisitPredicate &&pred) const |
| Visits all neighbors of the provided source vertex with a neighbor operator if the edge satisfies a given predicate. More...
|
|
template<typename V > |
std::size_t | degree (V &&v) const |
| Degree of vertex v.
|
|
void | add_edge (descriptor_type const &source, descriptor_type const &target, edge_property const &ep=edge_property()) const |
| Adds an edge between the two given vertices with given property. The edge is added asynchronously and the method returns immediately. More...
|
|
void | delete_edge (descriptor_type const &source, descriptor_type const &target) const |
| Deletes the edge between the given source and target vertices. The edge is deleted asynchronously. More...
|
|
size_t const & | level () const |
|
size_t const & | max_level () const |
|
template<typename Parent>
class stapl::kla_detail::kla_visitor< Parent >
Visitor object that is passed as the second paramter to the vertex operator for KLA algorithms.
- Template Parameters
-
◆ kla_visitor()
template<typename Parent >
◆ visit() [1/2]
template<typename Parent >
template<class NeighborOp >
Visits the target vertex and apply the provided update functor.
Adds a task on the provided neighboring vertex with the given neighbor-operator.
- Parameters
-
target | The vertex descriptor of the target vertex to visit. |
uf | The neighbor-operator to apply on the target vertex. |
◆ visit() [2/2]
template<typename Parent >
template<class NeighborOp >
Visits the target vertex and apply the provided update functor, with a given priority.
◆ visit_all_edges()
template<typename Parent >
template<class Vertex , class NeighborOp >
Visits all neighbors of the provided source vertex and applies the provided update functor on each of them.
Adds a task on all neighboring vertices with the given neighbor-operator.
- Parameters
-
source | The source vertex whose neighbors are being visited. |
uf | The neighbor-operator to apply on the target vertex. |
◆ visit_all_edges_if()
template<typename Parent >
template<class Vertex , class NeighborOp , typename VisitPredicate >
Visits all neighbors of the provided source vertex with a neighbor operator if the edge satisfies a given predicate.
- Parameters
-
source | The source vertex whose neighbors are being visited. |
uf | The neighbor-operator to apply on the target vertex. |
pred | The unary predicate to determine whether an edge should be visited |
◆ add_edge()
template<typename Parent >
void stapl::kla_detail::kla_visitor< Parent >::add_edge |
( |
descriptor_type const & |
source, |
|
|
descriptor_type const & |
target, |
|
|
edge_property const & |
ep = edge_property() |
|
) |
| const |
Adds an edge between the two given vertices with given property. The edge is added asynchronously and the method returns immediately.
Edge is not guaranteed to be added until after current superstep ends. The edge may be added during the current superstep.
- Parameters
-
source | Descriptor of the source vertex. |
target | Descriptor of the target vertex. |
ep | Property of the edge. |
◆ delete_edge()
template<typename Parent >
Deletes the edge between the given source and target vertices. The edge is deleted asynchronously.
The edge is not guaranteed to have been deleted until after current superstep ends, but may be deleted in the current superstep.
- Parameters
-
source | Descriptor of the source vertex. |
target | Descriptor of the target vertex. |
The documentation for this class was generated from the following file: