Skip to content

Commit fe77ee3

Browse files
pcaspersjenkins
authored andcommitted
QPR-12299 fix mc error estimate for array
1 parent b61f923 commit fe77ee3

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

OREData/ored/scripting/engines/scriptedinstrumentpricingengine.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ Real ScriptedInstrumentPricingEngine::addMcErrorEstimate(const std::string& labe
5959
return Null<Real>();
6060
Real var = variance(boost::get<RandomVariable>(v)).at(0);
6161
Real errEst = std::sqrt(var / static_cast<double>(model_->size()));
62-
results_.additionalResults[label] = errEst;
62+
if(!label.empty())
63+
results_.additionalResults[label] = errEst;
6364
return errEst;
6465
}
6566

@@ -170,9 +171,12 @@ void ScriptedInstrumentPricingEngine::calculate() const {
170171
QL_FAIL("got empty result vector for result variable '"
171172
<< r.first << "' referencing script variable '" << r.second << "', this is unexpected");
172173
}
174+
std::vector<double> errEst;
173175
for (auto const& d : v->second) {
174-
addMcErrorEstimate(r.first + "_MCErrEst", d);
176+
errEst.push_back(addMcErrorEstimate(std::string(), d));
175177
}
178+
if (!errEst.empty() && errEst.front() != Null<Real>())
179+
results_.additionalResults[r.first + "_MCErrEst"] = errEst;
176180
resultSet = true;
177181
}
178182
QL_REQUIRE(resultSet, "could not set additional result '" << r.first << "' referencing script variable '"

0 commit comments

Comments
 (0)