44 #ifndef ROL_BATCHSTDVECTOR_H
45 #define ROL_BATCHSTDVECTOR_H
61 const ROL::Ptr<BatchManager<Real> >
bman_;
76 uint numMySamples = yval.size();
77 ROL_TEST_FOR_EXCEPTION( xval.size() != numMySamples, std::invalid_argument,
78 "Error: Vectors must have the same dimension." );
79 Real val(0), sum_val(0);
80 for (
uint i = 0; i < numMySamples; ++i) {
81 val += xval[i] * yval[i];
84 bman_->sumAll(&val,&sum_val,1);
88 virtual ROL::Ptr<Vector<Real> >
clone(
void)
const {
90 uint numMySamples = yval.size();
91 return ROL::makePtr<BatchStdVector>(
92 ROL::makePtr<std::vector<Real>>(numMySamples),
bman_);
98 bman_->sumAll(&dim,&sum,1);
102 Real
reduce(
const Elementwise::ReductionOp<Real> &r)
const {
104 uint numMySamples = yval.size();
105 Real result = r.initialValue();
106 for (
uint i = 0; i < numMySamples; i++) {
107 r.reduce(yval[i],result);
111 bman_->reduceAll(&result,&sum,1,r);