43 #ifndef RTOPPACK_ROP_NORM2_HPP 44 #define RTOPPACK_ROP_NORM2_HPP 46 #include "RTOpPack_RTOpTHelpers.hpp" 53 template<
class Scalar>
57 void operator()(
const Scalar &v0, Scalar &reduct )
const 59 reduct += ScalarTraits<Scalar>::conjugate(v0)*v0;
67 template<
class Scalar>
73 typedef Teuchos::ScalarTraits<Scalar>
ST;
82 const Scalar sqrt_reduct = ST::squareroot(this->
getRawVal(reduct_obj));
83 return ST::magnitude(sqrt_reduct);
91 #endif // RTOPPACK_ROP_NORM2_HPP Base class for scalar reduction RTOps with one input vector.
Two (Euclidean) norm reduction operator: result = sqrt( sum( conj(v0[i])*v0[i], i=0...n-1 ) ).
Abstract base class for all reduction objects.
void setOpNameBase(const std::string &op_name_base)
Just set the operator name.
void operator()(const Scalar &v0, Scalar &reduct) const
Teuchos::ScalarTraits< Scalar > ST
ST::magnitudeType operator()(const ReductTarget &reduct_obj) const
const Scalar & getRawVal(const ReductTarget &reduct_obj) const