43#ifndef RTOPPACK_ROP_WEIGHTED_NORM2_HPP
44#define RTOPPACK_ROP_WEIGHTED_NORM2_HPP
46#include "RTOpPack_RTOpTHelpers.hpp"
57 void operator()(
const Scalar &v0,
const Scalar &v1, Scalar &reduct )
const
59 reduct += v0 * ScalarTraits<Scalar>::conjugate(v1)*v1;
70 ROpWeightedNorm2EleWiseReduction<Scalar> >
74 typedef Teuchos::ScalarTraits<Scalar>
ST;
82 {
return ST::magnitude(ST::squareroot(this->
getRawVal(reduct_obj))); }
const ConcreteReductObj & getRawVal(const ReductTarget &reduct_obj) const
void operator()(const Scalar &v0, const Scalar &v1, Scalar &reduct) const
ST::magnitudeType operator()(const ReductTarget &reduct_obj) const
Teuchos::ScalarTraits< Scalar > ST
ROp_2_ScalarReduction(const Scalar &initReductObjValue_in=Scalar(), ROpWeightedNorm2EleWiseReduction< Scalar > eleWiseReduction_in=ROpWeightedNorm2EleWiseReduction< Scalar >(), SumScalarReductObjReduction< Scalar > reductObjReduction_in=SumScalarReductObjReduction< Scalar >())
void setOpNameBase(const std::string &op_name_base)
Just set the operator name.
Abstract base class for all reduction objects.