43#ifndef RTOPPACK_RTOP_NEW_T_HPP
44#define RTOPPACK_RTOP_NEW_T_HPP
46#include "RTOpPack_RTOpT_decl.hpp"
47#include "Teuchos_Workspace.hpp"
48#include "Teuchos_Assert.hpp"
49#include "Teuchos_ScalarTraits.hpp"
60 const Ptr<int> &num_values,
61 const Ptr<int> &num_indexes,
62 const Ptr<int> &num_chars
72Teuchos::RCP<ReductTarget>
90 const Ptr<ReductTarget> & )
const
99 const ArrayView<primitive_value_type> &,
100 const ArrayView<index_type> &,
101 const ArrayView<char_type> &
104 throwNoReductError();
108template<
class Scalar>
110 const ArrayView<const primitive_value_type> &,
111 const ArrayView<const index_type> &,
112 const ArrayView<const char_type> &,
113 const Ptr<ReductTarget> &
116 throwNoReductError();
120template<
class Scalar>
127template<
class Scalar>
134template<
class Scalar>
144template<
class Scalar>
147 setOpNameBase(op_name_base);
151template<
class Scalar>
154 op_name_ = op_name_base+
"<"+ScalarTraits<Scalar>::name()+
">";
161template<
class Scalar>
164 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
165 "Error, no reduction is defined for concrete reduction op \'"
166 << this->description() <<
"\'!" );
Templated interface to vector reduction/transformation operators {abstract}.
virtual void get_reduct_type_num_entries_impl(const Ptr< int > &num_values, const Ptr< int > &num_indexes, const Ptr< int > &num_chars) const
Abstract base class for all reduction objects.