47 #include "AbstractLinAlgPack_VectorApplyOpSerialBase.hpp"
48 #include "AbstractLinAlgPack_apply_op_helper.hpp"
50 namespace AbstractLinAlgPack {
57 const RTOpPack::RTOp& op
58 ,
const size_t num_vecs,
const Vector* vecs[]
61 ,
const index_type first_ele,
const index_type sub_dim,
const index_type global_offset
65 in_apply_op_, std::logic_error
66 ,
"VectorApplyOpSerialBase::apply_op_serial(...): Error, this function has been entered "
67 "recursively which most likely means that the explicit sub-vector access methods Vector::get_sub_vector(...), "
68 "Vector::free_sub_vector(...), VectorMutable::get_sub_vector(...), VectorMutable::commit_sub_vector(...) "
69 "have not been overridden correctly on this concrete class \'" <<
typeName(*
this) <<
"\' to not call "
70 "apply_op(...) in there implemenations."
73 AbstractLinAlgPack::apply_op_serial(
74 op,num_vecs,vecs,num_targ_vecs,targ_vecs,reduct_obj
75 ,first_ele,sub_dim,global_offset
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
VectorApplyOpSerialBase()
Abstract interface for mutable coordinate vectors {abstract}.
void apply_op_serial(const RTOpPack::RTOp &op, const size_t num_vecs, const Vector *vecs[], const size_t num_targ_vecs, VectorMutable *targ_vecs[], RTOpPack::ReductTarget *reduct_obj, const index_type first_ele, const index_type sub_dim, const index_type global_offset) const
std::string typeName(const T &t)