183 const ArrayView<const primitive_value_type> &value_data,
184 const ArrayView<const index_type> &index_data,
185 const ArrayView<const char_type> &char_data,
186 const Ptr<ReductTarget> &reduct_obj
189 op_->load_reduct_obj_state(value_data, index_data, char_data, reduct_obj);
211 const Ptr<ReductTarget> &reduct_obj
218 op_->apply_op(sub_vecs, targ_sub_vecs, reduct_obj);
223 (sub_vecs.size() ? sub_vecs[0].globalOffset(): targ_sub_vecs[0].globalOffset());
225 (sub_vecs.size() ? sub_vecs[0].subDim(): targ_sub_vecs[0].subDim());
244 - (globalOffset + localOffset);
246 Array<ConstSubVectorView<Scalar> > sub_sub_vecs(sub_vecs.size());
247 for (
int k = 0; k < sub_vecs.size(); ++k) {
248 const Ordinal stride = sub_vecs[k].stride();
249 sub_sub_vecs[k].initialize(
250 globalOffset+ localOffset,
252 sub_vecs[k].values().persistingView(localOffset*stride, localSubDim*stride),
257 Array<SubVectorView<Scalar> > targ_sub_sub_vecs(targ_sub_vecs.size());
258 for (
int k = 0; k < targ_sub_vecs.size(); ++k) {
259 const Ordinal stride = targ_sub_vecs[k].stride();
260 targ_sub_sub_vecs[k].initialize(
261 globalOffset+ localOffset,
263 targ_sub_vecs[k].values().persistingView(localOffset*stride, localSubDim*stride),
268 op_->apply_op(sub_sub_vecs(), targ_sub_sub_vecs(), reduct_obj);