extract_transform_if_e.cuh#

namespace cugraph

Functions

template<typename GraphViewType, typename EdgeSrcValueInputWrapper, typename EdgeDstValueInputWrapper, typename EdgeValueInputWrapper, typename EdgeOp, typename PredOp>
dataframe_buffer_type_t<typename detail::edge_op_result_type<GraphViewType, typename GraphViewType::vertex_type, EdgeSrcValueInputWrapper, EdgeDstValueInputWrapper, EdgeValueInputWrapper, EdgeOp>::type> extract_transform_if_e(
raft::handle_t const &handle,
GraphViewType const &graph_view,
EdgeSrcValueInputWrapper edge_src_value_input,
EdgeDstValueInputWrapper edge_dst_value_input,
EdgeValueInputWrapper edge_value_input,
EdgeOp e_op,
PredOp pred_op,
bool do_expensive_check = false
)

Iterate over the entire set of edges and extract the valid edge functor outputs.

Template Parameters:
  • GraphViewType – Type of the passed non-owning graph object.

  • EdgeSrcValueInputWrapper – Type of the wrapper for edge source property values.

  • EdgeDstValueInputWrapper – Type of the wrapper for edge destination property values.

  • EdgeValueInputWrapper – Type of the wrapper for edge property values.

  • EdgeOp – Type of the quinary edge operator.

  • PredOp – Type of the quinary predicate operator.

Parameters:
  • handle – RAFT handle object to encapsulate resources (e.g. CUDA stream, communicator, and handles to various CUDA libraries) to run graph algorithms.

  • graph_view – Non-owning graph object.

  • edge_src_value_input – Wrapper used to access source input property values (for the edge sources assigned to this process in multi-GPU). Use either cugraph::edge_src_property_t::view() (if e_op needs to access source property values) or cugraph::edge_src_dummy_property_t::view() (if e_op does not access source property values). Use update_edge_src_property to fill the wrapper.

  • edge_dst_value_input – Wrapper used to access destination input property values (for the edge destinations assigned to this process in multi-GPU). Use either cugraph::edge_dst_property_t::view() (if e_op needs to access destination property values) or cugraph::edge_dst_dummy_property_t::view() (if e_op does not access destination property values). Use update_edge_dst_property to fill the wrapper.

  • edge_value_input – Wrapper used to access edge input property values (for the edges assigned to this process in multi-GPU). Use either cugraph::edge_property_t::view() (if e_op needs to access edge property values) or cugraph::edge_dummy_property_t::view() (if e_op does not access edge property values).

  • e_op – Quinary operator takes edge source, edge destination, property values for the source, property values for the destination, and property values for the edge and returns an output value to be extracted and accumulated.

  • pred_op – Quinary predicate operator takes edge source, edge destination, property values for the source, property values for the destination, and property values for the edge and returns true if the edge should be processed.

  • do_expensive_check – A flag to run expensive checks for input arguments (if set to true).

Returns:

Dataframe buffer object storing extracted and accumulated valid e_op return values.