43 #ifndef RTOPPACK_RTOP_NEW_T_HPP
44 #define RTOPPACK_RTOP_NEW_T_HPP
47 #include "Teuchos_Workspace.hpp"
48 #include "Teuchos_Assert.hpp"
49 #include "Teuchos_ScalarTraits.hpp"
58 template<
class Scalar>
60 const Ptr<int> &num_values,
61 const Ptr<int> &num_indexes,
62 const Ptr<int> &num_chars
71 template<
class Scalar>
72 Teuchos::RCP<ReductTarget>
79 template<
class Scalar>
81 const ReductTarget& in_reduct_obj,
const Ptr<ReductTarget>& inout_reduct_obj
88 template<
class Scalar>
90 const Ptr<ReductTarget> &reduct_obj )
const
96 template<
class Scalar>
99 const ArrayView<primitive_value_type> &value_data,
100 const ArrayView<index_type> &index_data,
101 const ArrayView<char_type> &char_data
104 throwNoReductError();
108 template<
class Scalar>
110 const ArrayView<const primitive_value_type> &value_data,
111 const ArrayView<const index_type> &index_data,
112 const ArrayView<const char_type> &char_data,
113 const Ptr<ReductTarget> &reduct_obj
116 throwNoReductError();
120 template<
class Scalar>
127 template<
class Scalar>
134 template<
class Scalar>
144 template<
class Scalar>
147 setOpNameBase(op_name_base);
151 template<
class Scalar>
154 op_name_ = op_name_base+
"<"+ScalarTraits<Scalar>::name()+
">";
161 template<
class Scalar>
164 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
165 "Error, no reduction is defined for concrete reduction op \'"
166 << this->description() <<
"\'!" );
174 #endif // RTOPPACK_RTOP_NEW_T_HPP