MinMax#
Specific implementation of ReducerConcept storing both the minimum and maximum values
Header File: Kokkos_Core.hpp
Usage:
MinMax<T,S>::value_type result;
parallel_reduce(N,Functor,MinMax<T,S>(result));
Synopsis#
template<class Scalar, class Space>
class MinMax{
public:
typedef MinMax reducer;
typedef MinMaxScalar<typename std::remove_cv<Scalar>::type> value_type;
typedef Kokkos::View<value_type, Space> result_view_type;
KOKKOS_INLINE_FUNCTION
void join(value_type& dest, const value_type& src) const
KOKKOS_INLINE_FUNCTION
void init( value_type& val) const;
KOKKOS_INLINE_FUNCTION
value_type& reference() const;
KOKKOS_INLINE_FUNCTION
result_view_type view() const;
KOKKOS_INLINE_FUNCTION
MinMax(value_type& value_);
KOKKOS_INLINE_FUNCTION
MinMax(const result_view_type& value_);
};
Public Class Members#
Typedefs#
reducer: The self type.value_type: The reduction scalar type (specialization of MinMaxScalar)result_view_type: AKokkos::Viewreferencing the reduction result
Constructors#
MinMax(value_type& result)
Constructs a reducer which references a local variable as its result location.
MinMax(const result_view_type result)
Constructs a reducer which references a specific view as its result location.
Functions#
void join(value_type& dest, const value_type& src) const;
Store minimum of
srcanddestintodest:dest.min_val = (src.min_val < dest.min_val) ? src.min_val : dest.min_val;.Store maximum of
srcanddestintodest:dest.max_val = (src.max_val < dest.max_val) ? src.max_val : dest.max_val;.
void init( value_type& val) const;
Initialize
val.min_valusing the Kokkos::reduction_identity::min() method. The default implementation sets val=<TYPE>_MAX.Initialize
val.max_valusing the Kokkos::reduction_identity::max() method. The default implementation sets val=<TYPE>_MIN.value_type& reference() const;
Returns a reference to the result provided in class constructor.
result_view_type view() const;
Returns a view of the result place provided in class constructor.
Additional Information#
MinMax<T,S>::value_typeis Specialization of MinMaxScalar on non-constTMinMax<T,S>::result_view_typeisKokkos::View<T,S,Kokkos::MemoryTraits<Kokkos::Unmanaged>>. Note that the S (memory space) must be the same as the space where the result resides.Requires:
Scalarhasoperator =,operator <andoperator >defined.Kokkos::reduction_identity<Scalar>::min()andKokkos::reduction_identity<Scalar>::max()are a valid expressions.In order to use MinMax with a custom type of
Scalar, a template specialization ofKokkos::reduction_identity<CustomType>must be defined. See Built-In Reducers with Custom Scalar Types for details