43#ifndef RTOPPACK_ROP_MIN_INDEX_HPP
44#define RTOPPACK_ROP_MIN_INDEX_HPP
47#include "RTOpPack_RTOpTHelpers.hpp"
59 ScalarIndex<Scalar> &reduct)
const
64 ( v0 == reduct.scalar && i < reduct.index )
67 reduct = ScalarIndex<Scalar>(v0, i);
79 const ScalarIndex<Scalar>& in_reduct, ScalarIndex<Scalar>& inout_reduct
83 in_reduct.scalar < inout_reduct.scalar
86 in_reduct.scalar == inout_reduct.scalar
88 in_reduct.index < inout_reduct.index
92 inout_reduct = in_reduct;
103template<
class Scalar>
108 ROpMinIndexEleWiseReductionOp<Scalar>,
109 ROpMinIndexReductObjReductionOp<Scalar> >
116 this->initReductObjValue(
117 ScalarIndex<Scalar>(+ScalarTraits<Scalar>::rmax(), -1));
void operator()(const index_type i, const Scalar &v0, ScalarIndex< Scalar > &reduct) const
void operator()(const ScalarIndex< Scalar > &in_reduct, ScalarIndex< Scalar > &inout_reduct) const
Returns the minimum element and its index: result.scalar = x(k) and result.index = k such that x(k) <...
ScalarIndex< Scalar > operator()(const ReductTarget &reduct_obj) const
const ConcreteReductObj & getRawVal(const ReductTarget &reduct_obj) const
Base class for coordinate-variant scalar reduction RTOps with one input vector.
void setOpNameBase(const std::string &op_name_base)
Just set the operator name.
Abstract base class for all reduction objects.
Teuchos_Ordinal index_type