property_op_utils.cuh#
-
namespace cugraph
Functions
-
template<typename T>
std::enable_if_t<is_thrust_tuple_of_arithmetic<T>::value, T> min_identity_element(
-
template<typename T>
std::enable_if_t<is_thrust_tuple_of_arithmetic<T>::value, T> max_identity_element(
-
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp, typename T>
struct cast_edge_op_bool_to_integer Public Types
-
using vertex_type = typename GraphViewType::vertex_type#
-
using src_value_type = typename EdgePartitionSrcValueInputWrapper::value_type#
-
using dst_value_type = typename EdgePartitionDstValueInputWrapper::value_type#
-
using e_value_type = typename EdgePartitionEdgeValueInputWrapper::value_type#
Public Functions
- template<typename K = key_t, typename V = vertex_type, typename SV = src_value_type, typename DV = dst_value_type, typename EV = e_value_type, typename E = EdgeOp> inline __device__ std::enable_if_t< std::is_invocable_v< E, K, V, SV, DV, EV >, T > operator() (K s, V d, SV sv, DV dv, EV ev) const
-
using vertex_type = typename GraphViewType::vertex_type#
-
template<typename ...Args, template<typename> typename Op>
struct property_op<cuda::std::tuple<Args...>, Op> : public Op<cuda::std::tuple<Args...>> -
Public Functions
- inline __host__ __device__ constexpr auto operator() (const Type &t1, const Type &t2) const
Private Functions
- template<typename T, std::size_t... Is> inline __host__ __device__ constexpr auto binary_op_impl (T &t1, T &t2, std::index_sequence< Is... >) const
-
namespace detail
-
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp>
struct edge_op_result_type Public Types
-
using type = typename std::invoke_result<EdgeOp, std::conditional_t<GraphViewType::is_storage_transposed, typename GraphViewType::vertex_type, key_t>, std::conditional_t<GraphViewType::is_storage_transposed, key_t, typename GraphViewType::vertex_type>, typename EdgePartitionSrcValueInputWrapper::value_type, typename EdgePartitionDstValueInputWrapper::value_type, typename EdgePartitionEdgeValueInputWrapper::value_type>::type#
-
using type = typename std::invoke_result<EdgeOp, std::conditional_t<GraphViewType::is_storage_transposed, typename GraphViewType::vertex_type, key_t>, std::conditional_t<GraphViewType::is_storage_transposed, key_t, typename GraphViewType::vertex_type>, typename EdgePartitionSrcValueInputWrapper::value_type, typename EdgePartitionDstValueInputWrapper::value_type, typename EdgePartitionEdgeValueInputWrapper::value_type>::type#
-
template<typename vertex_t, typename src_value_t, typename dst_value_t, typename IntersectionOp>
struct intersection_op_result_type<vertex_t, src_value_t, dst_value_t, IntersectionOp, std::enable_if_t<std::is_invocable_v<IntersectionOp, vertex_t, vertex_t, src_value_t, dst_value_t, raft::device_span<vertex_t const>>>> Public Types
-
using type = typename std::invoke_result<IntersectionOp, vertex_t, vertex_t, src_value_t, dst_value_t, raft::device_span<vertex_t const>>::type#
-
using type = typename std::invoke_result<IntersectionOp, vertex_t, vertex_t, src_value_t, dst_value_t, raft::device_span<vertex_t const>>::type#
-
template<typename GraphViewType, typename key_t, typename EdgePartitionSrcValueInputWrapper, typename EdgePartitionDstValueInputWrapper, typename EdgePartitionEdgeValueInputWrapper, typename EdgeOp>
-
template<typename T>