43 #ifndef RTOPPACK_ROP_WEIGHTED_NORM2_HPP 44 #define RTOPPACK_ROP_WEIGHTED_NORM2_HPP 46 #include "RTOpPack_RTOpTHelpers.hpp" 53 template<
class Scalar>
57 void operator()(
const Scalar &v0,
const Scalar &v1, Scalar &reduct )
const 59 reduct += v0 * ScalarTraits<Scalar>::conjugate(v1)*v1;
67 template<
class Scalar>
70 ROpWeightedNorm2EleWiseReduction<Scalar> >
74 typedef Teuchos::ScalarTraits<Scalar>
ST;
82 {
return ST::magnitude(ST::squareroot(this->
getRawVal(reduct_obj))); }
89 #endif // RTOPPACK_ROP_WEIGHTED_NORM2_HPP Teuchos::ScalarTraits< Scalar > ST
Weighted Two (Euclidean) norm reduction operator: result = sqrt( sum( v0[i]*conj(v1[i])*v1[i], i=0...n-1 ) ).
void setOpNameBase(const std::string &op_name_base)
ST::magnitudeType operator()(const ReductTarget &reduct_obj) const
const ReductScalar & getRawVal(const ReductTarget &reduct_obj) const