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
Weighted Two (Euclidean) norm reduction operator: result = sqrt( sum( v0[i]*conj(v1[i])*v1[i],...
ST::magnitudeType operator()(const ReductTarget &reduct_obj) const
Teuchos::ScalarTraits< Scalar > ST
Base class for scalar reduction RTOps with two input vectors.
void setOpNameBase(const std::string &op_name_base)
Just set the operator name.
Abstract base class for all reduction objects.