Skip to content

Commit 868dbf4

Browse files
author
jenkins
committed
git subrepo pull (merge) ore
subrepo: subdir: "ore" merged: "f1a7840a74" upstream: origin: "git@gitlab.acadiasoft.net:qs/ore.git" branch: "master" commit: "0d756965f5" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "73a0129"
2 parents 8f010db + 0d75696 commit 868dbf4

9 files changed

Lines changed: 246 additions & 86 deletions

File tree

OREData/ored/configuration/equitycurveconfig.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,16 +143,5 @@ EquityCurveConfig::Type parseEquityCurveConfigType(const std::string& str) {
143143
QL_FAIL("Invalid EquityCurveConfig::Type " << str);
144144
}
145145

146-
std::ostream& operator<<(std::ostream& out, Exercise::Type t) {
147-
switch (t) {
148-
case Exercise::American:
149-
return out << "American";
150-
case Exercise::European:
151-
return out << "European";
152-
default:
153-
QL_FAIL("invalid Exercise::Type(" << int(t) << ")");
154-
}
155-
}
156-
157146
} // namespace data
158147
} // namespace ore

OREData/ored/configuration/equitycurveconfig.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ class EquityCurveConfig : public CurveConfig {
118118
};
119119

120120
std::ostream& operator<<(std::ostream& out, EquityCurveConfig::Type t);
121-
std::ostream& operator<<(std::ostream& out, QuantLib::Exercise::Type t);
122121

123122
EquityCurveConfig::Type parseEquityCurveConfigType(const std::string& str);
124123

OREData/ored/configuration/volatilityconfig.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ void VolatilityConfig::fromXMLNode(XMLNode* node) {
4646
}
4747

4848
void VolatilityConfig::toXMLNode(XMLDocument& doc, XMLNode* node) const {
49-
XMLUtils::addAttribute(doc, node, "priority", to_string(priority_));
49+
XMLUtils::addAttribute(doc, node, "priority", std::to_string(priority_));
5050
if (!calendarStr_.empty())
5151
XMLUtils::addChild(doc, node, "Calendar", calendarStr_);
5252
}
@@ -126,7 +126,7 @@ void QuoteBasedVolatilityConfig::toBaseNode(XMLDocument& doc, XMLNode* node) con
126126
// Check first for premium
127127
if (quoteType_ == MarketDatum::QuoteType::PRICE) {
128128
XMLUtils::addChild(doc, node, "QuoteType", "Premium");
129-
XMLUtils::addChild(doc, node, "ExerciseType", to_string(exerciseType_));
129+
XMLUtils::addChild(doc, node, "ExerciseType", ore::data::to_string(exerciseType_));
130130
return;
131131
}
132132

OREData/ored/utilities/parsers.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1492,5 +1492,20 @@ std::ostream& operator<<(std::ostream& out, SabrParametricVolatility::ModelVaria
14921492
return out;
14931493
}
14941494

1495+
std::ostream& operator<<(std::ostream& os, Exercise::Type type) {
1496+
if (type == Exercise::European) {
1497+
os << "European";
1498+
} else if (type == Exercise::Bermudan) {
1499+
os << "Bermudan";
1500+
} else if (type == Exercise::American) {
1501+
os << "American";
1502+
} else {
1503+
QL_FAIL("Exercise::Type (" << static_cast<int>(type)
1504+
<< " not recognized. Expected 'European', 'Bermudan', or 'American'.");
1505+
}
1506+
1507+
return os;
1508+
}
1509+
14951510
} // namespace data
14961511
} // namespace ore

OREData/ored/utilities/parsers.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,5 +611,11 @@ QuantExt::SabrParametricVolatility::ModelVariant parseSabrParametricVolatilityMo
611611
*/
612612
std::ostream& operator<<(std::ostream& out, QuantExt::SabrParametricVolatility::ModelVariant m);
613613

614+
//! Write QuantLib::Exercise::Type
615+
/*!
616+
\ingroup utilities
617+
*/
618+
std::ostream& operator<<(std::ostream& os, QuantLib::Exercise::Type type);
619+
614620
} // namespace data
615621
} // namespace ore

OREData/ored/utilities/to_string.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ using namespace QuantLib;
4242

4343
std::string to_string(const Date& date) {
4444
if (date == Date())
45-
return "1900-01-01";
45+
return "1901-01-01";
4646

4747
char buf[11];
4848
int y = date.year();

QuantExt/qle/math/basiccpuenvironment.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ std::vector<std::vector<std::size_t>> BasicCpuContext::createInputVariates(const
236236
rng_ = std::make_unique<MersenneTwisterUniformRng>(settings_.rngSeed);
237237
}
238238

239-
if (variates_.size() < dim * steps) {
240-
for (std::size_t i = variates_.size(); i < dim * steps; ++i) {
239+
if (variates_.size() < numberOfVariates_[currentId_ - 1] + dim * steps) {
240+
for (std::size_t i = variates_.size(); i < numberOfVariates_[currentId_ - 1] + dim * steps; ++i) {
241241
variates_.push_back(RandomVariable(size_[currentId_ - 1]));
242242
for (std::size_t j = 0; j < variates_.back().size(); ++j)
243243
variates_.back().set(j, icn_(rng_->nextReal()));
@@ -247,11 +247,11 @@ std::vector<std::vector<std::size_t>> BasicCpuContext::createInputVariates(const
247247
std::vector<std::vector<std::size_t>> resultIds(dim, std::vector<std::size_t>(steps));
248248
for (std::size_t i = 0; i < dim; ++i) {
249249
for (std::size_t j = 0; j < steps; ++j) {
250-
resultIds[i][j] = numberOfInputVars_[currentId_ - 1] + i * steps + j;
250+
resultIds[i][j] = numberOfInputVars_[currentId_ - 1] + numberOfVariates_[currentId_ - 1] + i * steps + j;
251251
}
252252
}
253253

254-
numberOfVariates_[currentId_ - 1] = dim * steps;
254+
numberOfVariates_[currentId_ - 1] += dim * steps;
255255

256256
return resultIds;
257257
}
@@ -368,8 +368,9 @@ void BasicCpuContext::finalizeCalculation(std::vector<double*>& output) {
368368
RandomVariable* v;
369369
if (id < numberOfInputVars_[currentId_ - 1])
370370
v = &values_[id];
371-
else if (id < numberOfInputVars_[currentId_ - 1] + numberOfVariates_[currentId_ - 1])
371+
else if (id < numberOfInputVars_[currentId_ - 1] + numberOfVariates_[currentId_ - 1]) {
372372
v = &variates_[id - numberOfInputVars_[currentId_ - 1]];
373+
}
373374
else
374375
v = &values_[id - numberOfVariates_[currentId_ - 1]];
375376
for (Size j = 0; j < size_[currentId_ - 1]; ++j) {

0 commit comments

Comments
 (0)