Add per-edge triplet neighbor-intersection transform-reduce primitive#5551
Add per-edge triplet neighbor-intersection transform-reduce primitive#5551jnke2016 wants to merge 32 commits into
Conversation
…C++ tests for the primitives
…ings, and per-partition setup)
…nts_by_e invoke the operator once per common neighbor r
…f_e_endpoints_by_e
…(operator overload)
…intersection_of_e_endpoints_by_e
…oc/FIXME and readability cleanups
| std::tuple<rmm::device_uvector<typename GraphViewType::vertex_type>, | ||
| rmm::device_uvector<typename GraphViewType::vertex_type>, | ||
| dataframe_buffer_type_t<T>> | ||
| transform_reduce_triplet_of_dst_nbr_intersection_of_e_endpoints_by_e( |
There was a problem hiding this comment.
Do we need "triplet of" here?
| VertexPairIterator vertex_pair_first, | ||
| VertexPairIterator vertex_pair_last, |
There was a problem hiding this comment.
If we are performing reduction "by_e", this means vertex pairs should be edges. Then, we should better use an edge bucket than general vertex pairs.
See
https://github.com/rapidsai/cugraph/blob/main/cpp/include/cugraph/prims/transform_gather_e.cuh#L151
| * @param edge_dst_value_input Wrapper used to access destination input property values. | ||
| * @param edge_value_input Wrapper used to access supporting-edge property values. | ||
| * @param intersection_op septenary per (edge, intersection vertex) operator (see the all-edges | ||
| * overload). |
There was a problem hiding this comment.
Update the documentation similar to the "by_v" primitive.
The "by_v" primitive returns a triplet: one value for source, one value for destination, and one value for the intersection vertex.
We may do something similar for the "by_e" primitive. One value for the edge, a second value for the src-intersection edge, and a third value for the dst-intersection edge.
No description provided.