43#ifndef RTOPPACK_ROP_MAX_INDEX_LESS_THAN_BOUND_HPP
44#define RTOPPACK_ROP_MAX_INDEX_LESS_THAN_BOUND_HPP
47#include "Teuchos_StandardMemberCompositionMacros.hpp"
59 const Scalar &bound = ScalarTraits<Scalar>::zero()
65 ScalarIndex<Scalar> &reduct)
const
73 ( v0 == reduct.scalar && i < reduct.index )
77 reduct = ScalarIndex<Scalar>(v0, i);
99 ROpMaxIndexLessThanBoundEleWiseReductionOp<Scalar>,
100 ROpMaxIndexReductObjReductionOp<Scalar> >
105 const Scalar &bound_in = Teuchos::ScalarTraits<Scalar>::zero()
110 this->initReductObjValue(
111 ScalarIndex<Scalar>(-ScalarTraits<Scalar>::rmax(), -1));
117 ROpMaxIndexLessThanBoundEleWiseReductionOp<Scalar>(bound_in)
void operator()(const index_type i, const Scalar &v0, ScalarIndex< Scalar > &reduct) const
ROpMaxIndexLessThanBoundEleWiseReductionOp(const Scalar &bound=ScalarTraits< Scalar >::zero())
Returns the maximum element less than some bound along with its index: result.scalar = x(k) and resul...
ROpMaxIndexLessThanBound(const Scalar &bound_in=Teuchos::ScalarTraits< Scalar >::zero())
void bound(const Scalar &bound_in)
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 setEleWiseReduction(ROpMaxIndexLessThanBoundEleWiseReductionOp< Scalar > eleWiseReduction_in)
void setOpNameBase(const std::string &op_name_base)
Just set the operator name.
Abstract base class for all reduction objects.
Teuchos_Ordinal index_type