reduce_op.cuh#
-
namespace cugraph
-
namespace reduce_op
Functions
- template<typename ReduceOp, typename Iterator> __device__ std::enable_if_t< has_compatible_raft_comms_op_v< ReduceOp >, void > atomic_reduce (Iterator iter, typename thrust::iterator_traits< Iterator >::value_type value)
- template<typename ReduceOp, typename EdgePartitionEndpointPropertyValueWrapper> __device__ std::enable_if_t< has_compatible_raft_comms_op_v< ReduceOp >, void > atomic_reduce (EdgePartitionEndpointPropertyValueWrapper edge_partition_endpoint_property_value, typename EdgePartitionEndpointPropertyValueWrapper::vertex_type offset, typename EdgePartitionEndpointPropertyValueWrapper::value_type value)
Variables
-
template<typename ReduceOp>
bool has_compatible_raft_comms_op_v == has_compatible_raft_comms_op<ReduceOp>::value
-
template<typename ReduceOp>
bool has_identity_element_v = has_identity_element<ReduceOp>::value
-
struct null
Public Types
-
using value_type = void#
-
using value_type = void#
-
template<typename T>
struct any -
Public Functions
- inline __host__ __device__ T operator() (T const &lhs, T const &rhs) const
Public Static Attributes
-
static bool pure_function = true#
-
template<typename T>
struct minimum<T, std::enable_if_t<std::is_arithmetic_v<T>>> -
Public Functions
- inline __host__ __device__ T operator() (T const &lhs, T const &rhs) const
-
template<typename T>
struct minimum<T, std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value>> -
Public Functions
- inline __host__ __device__ T operator() (T const &lhs, T const &rhs) const
Public Static Attributes
-
static bool pure_function = true#
-
static T const identity_element = max_identity_element<T>()#
-
template<typename T>
struct elementwise_minimum -
Public Functions
- template<typename U = T> inline __host__ __device__ std::enable_if_t< std::is_arithmetic_v< U >, T > operator() (T const &lhs, T const &rhs) const
- template<typename U = T> inline __host__ __device__ std::enable_if_t< cugraph::is_thrust_tuple_of_arithmetic< U >::value, T > operator() (T const &lhs, T const &rhs) const
-
template<typename T>
struct maximum<T, std::enable_if_t<std::is_arithmetic_v<T>>> -
Public Functions
- inline __host__ __device__ T operator() (T const &lhs, T const &rhs) const
-
template<typename T>
struct maximum<T, std::enable_if_t<cugraph::is_thrust_tuple_of_arithmetic<T>::value>> -
Public Functions
- inline __host__ __device__ T operator() (T const &lhs, T const &rhs) const
Public Static Attributes
-
static bool pure_function = true#
-
static T const identity_element = min_identity_element<T>()#
-
template<typename T>
struct elementwise_maximum -
Public Functions
- template<typename U = T> inline __host__ __device__ std::enable_if_t< std::is_arithmetic_v< U >, T > operator() (T const &lhs, T const &rhs) const
- template<typename U = T> inline __host__ __device__ std::enable_if_t< cugraph::is_thrust_tuple_of_arithmetic< U >::value, T > operator() (T const &lhs, T const &rhs) const
-
template<typename T>
struct plus -
Public Functions
- inline __host__ __device__ T operator() (T const &lhs, T const &rhs) const
Public Members
-
property_op<T, cuda::std::plus> op = {}#
-
template<typename ReduceOp, typename = raft::comms::op_t>
struct has_compatible_raft_comms_op : public std::false_type
-
template<typename ReduceOp>
struct has_compatible_raft_comms_op<ReduceOp, std::remove_cv_t<decltype(ReduceOp::compatible_raft_comms_op)>> : public std::false_type, public std::true_type
-
template<typename ReduceOp, typename = typename ReduceOp::value_type>
struct has_identity_element : public std::false_type
-
template<typename ReduceOp>
struct has_identity_element<ReduceOp, std::remove_cv_t<decltype(ReduceOp::identity_element)>> : public std::false_type, public std::true_type
-
namespace detail
Functions
- template<typename T, std::size_t... Is> __host__ __device__ std::enable_if_t< cugraph::is_thrust_tuple_of_arithmetic< T >::value, T > elementwise_thrust_min (T lhs, T rhs, std::index_sequence< Is... >)
- template<typename T, std::size_t... Is> __host__ __device__ std::enable_if_t< cugraph::is_thrust_tuple_of_arithmetic< T >::value, T > elementwise_thrust_max (T lhs, T rhs, std::index_sequence< Is... >)
-
namespace reduce_op