Skip to content

Commit

Permalink
No need for Null<Array>, we can use {}
Browse files Browse the repository at this point in the history
  • Loading branch information
lballabio committed Oct 3, 2024
1 parent 6cffc33 commit ef12f99
Show file tree
Hide file tree
Showing 13 changed files with 35 additions and 41 deletions.
6 changes: 3 additions & 3 deletions ql/legacy/libormarketmodels/lfmcovarparam.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ namespace QuantLib {
Size size() const { return size_; }
Size factors() const { return factors_; }

virtual Matrix diffusion(Time t, const Array& x = Null<Array>()) const = 0;
virtual Matrix covariance(Time t, const Array& x = Null<Array>()) const;
virtual Matrix integratedCovariance(Time t, const Array& x = Null<Array>()) const;
virtual Matrix diffusion(Time t, const Array& x = {}) const = 0;
virtual Matrix covariance(Time t, const Array& x = {}) const;
virtual Matrix integratedCovariance(Time t, const Array& x = {}) const;

protected:
const Size size_;
Expand Down
7 changes: 3 additions & 4 deletions ql/legacy/libormarketmodels/lfmcovarproxy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,11 @@ namespace QuantLib {
ext::shared_ptr<LmVolatilityModel> volatilityModel() const;
ext::shared_ptr<LmCorrelationModel> correlationModel() const;

Matrix diffusion(Time t, const Array& x = Null<Array>()) const override;
Matrix covariance(Time t, const Array& x = Null<Array>()) const override;
Matrix diffusion(Time t, const Array& x = {}) const override;
Matrix covariance(Time t, const Array& x = {}) const override;

using LfmCovarianceParameterization::integratedCovariance;
virtual Real integratedCovariance(
Size i, Size j, Time t, const Array& x = Null<Array>()) const;
virtual Real integratedCovariance(Size i, Size j, Time t, const Array& x = {}) const;

protected:
const ext::shared_ptr<LmVolatilityModel> volaModel_;
Expand Down
6 changes: 3 additions & 3 deletions ql/legacy/libormarketmodels/lfmhullwhiteparam.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ namespace QuantLib {
const ext::shared_ptr<OptionletVolatilityStructure> & capletVol,
const Matrix& correlation = Matrix(), Size factors = 1);

Matrix diffusion(Time t, const Array& x = Null<Array>()) const override;
Matrix covariance(Time t, const Array& x = Null<Array>()) const override;
Matrix integratedCovariance(Time t, const Array& x = Null<Array>()) const override;
Matrix diffusion(Time t, const Array& x = {}) const override;
Matrix covariance(Time t, const Array& x = {}) const override;
Matrix integratedCovariance(Time t, const Array& x = {}) const override;

protected:
Size nextIndexReset(Time t) const;
Expand Down
6 changes: 3 additions & 3 deletions ql/legacy/libormarketmodels/lmconstwrappercorrmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ namespace QuantLib {

Size factors() const override { return corrModel_->factors(); }

Matrix correlation(Time t, const Array& x = Null<Array>()) const override {
Matrix correlation(Time t, const Array& x = {}) const override {
return corrModel_->correlation(t, x);
}
Matrix pseudoSqrt(Time t, const Array& x = Null<Array>()) const override {
Matrix pseudoSqrt(Time t, const Array& x = {}) const override {
return corrModel_->pseudoSqrt(t, x);
}
Real correlation(Size i, Size j, Time t, const Array& x = Null<Array>()) const override {
Real correlation(Size i, Size j, Time t, const Array& x = {}) const override {
return corrModel_->correlation(i, j, t, x);
}
bool isTimeIndependent() const override { return corrModel_->isTimeIndependent(); }
Expand Down
7 changes: 3 additions & 4 deletions ql/legacy/libormarketmodels/lmconstwrappervolmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,14 @@ namespace QuantLib {
volaModel_(volaModel) {
}

Array volatility(Time t, const Array& x = Null<Array>()) const override {
Array volatility(Time t, const Array& x = {}) const override {
return volaModel_->volatility(t, x);
}
Volatility volatility(
Size i, Time t, const Array& x = Null<Array>()) {
Size i, Time t, const Array& x = {}) {
return volaModel_->volatility(i, t, x);
}
Real
integratedVariance(Size i, Size j, Time u, const Array& x = Null<Array>()) const override {
Real integratedVariance(Size i, Size j, Time u, const Array& x = {}) const override {
return volaModel_->integratedVariance(i, j, u, x);
}

Expand Down
6 changes: 3 additions & 3 deletions ql/legacy/libormarketmodels/lmcorrmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ namespace QuantLib {
std::vector<Parameter>& params();
void setParams(const std::vector<Parameter> & arguments);

virtual Matrix correlation(Time t, const Array& x = Null<Array>()) const = 0;
virtual Matrix pseudoSqrt(Time t, const Array& x = Null<Array>()) const;
virtual Real correlation(Size i, Size j, Time t, const Array& x = Null<Array>()) const;
virtual Matrix correlation(Time t, const Array& x = {}) const = 0;
virtual Matrix pseudoSqrt(Time t, const Array& x = {}) const;
virtual Real correlation(Size i, Size j, Time t, const Array& x = {}) const;
virtual bool isTimeIndependent() const;

protected:
Expand Down
4 changes: 2 additions & 2 deletions ql/legacy/libormarketmodels/lmexpcorrmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ namespace QuantLib {
public:
LmExponentialCorrelationModel(Size size, Real rho);

Matrix correlation(Time t, const Array& x = Null<Array>()) const override;
Matrix pseudoSqrt(Time t, const Array& x = Null<Array>()) const override;
Matrix correlation(Time t, const Array& x = {}) const override;
Matrix pseudoSqrt(Time t, const Array& x = {}) const override;
Real correlation(Size i, Size j, Time t, const Array& x) const override;
bool isTimeIndependent() const override;

Expand Down
7 changes: 3 additions & 4 deletions ql/legacy/libormarketmodels/lmextlinexpvolmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,10 @@ namespace QuantLib {
LmExtLinearExponentialVolModel(const std::vector<Time>& fixingTimes,
Real a, Real b, Real c, Real d);

Array volatility(Time t, const Array& x = Null<Array>()) const override;
Volatility volatility(Size i, Time t, const Array& x = Null<Array>()) const override;
Array volatility(Time t, const Array& x = {}) const override;
Volatility volatility(Size i, Time t, const Array& x = {}) const override;

Real
integratedVariance(Size i, Size j, Time u, const Array& x = Null<Array>()) const override;
Real integratedVariance(Size i, Size j, Time u, const Array& x = {}) const override;
};

}
Expand Down
2 changes: 1 addition & 1 deletion ql/legacy/libormarketmodels/lmfixedvolmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ namespace QuantLib {
public:
LmFixedVolatilityModel(Array volatilities, const std::vector<Time>& startTimes);

Array volatility(Time t, const Array& x = Null<Array>()) const override;
Array volatility(Time t, const Array& x = {}) const override;
Volatility volatility(Size i, Time t, const Array& x) const override;

private:
Expand Down
4 changes: 2 additions & 2 deletions ql/legacy/libormarketmodels/lmlinexpcorrmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ namespace QuantLib {
LmLinearExponentialCorrelationModel(Size size, Real rho, Real beta,
Size factors = Null<Size>());

Matrix correlation(Time t, const Array& x = Null<Array>()) const override;
Matrix pseudoSqrt(Time t, const Array& x = Null<Array>()) const override;
Matrix correlation(Time t, const Array& x = {}) const override;
Matrix pseudoSqrt(Time t, const Array& x = {}) const override;
Real correlation(Size i, Size j, Time t, const Array& x) const override;

Size factors() const override;
Expand Down
12 changes: 5 additions & 7 deletions ql/legacy/libormarketmodels/lmlinexpvolmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,13 @@ namespace QuantLib {

class LmLinearExponentialVolatilityModel : public LmVolatilityModel {
public:
LmLinearExponentialVolatilityModel(
const std::vector<Time>& fixingTimes,
Real a, Real b, Real c, Real d);
LmLinearExponentialVolatilityModel(const std::vector<Time>& fixingTimes,
Real a, Real b, Real c, Real d);

Array volatility(Time t, const Array& x = Null<Array>()) const override;
Volatility volatility(Size i, Time t, const Array& x = Null<Array>()) const override;
Array volatility(Time t, const Array& x = {}) const override;
Volatility volatility(Size i, Time t, const Array& x = {}) const override;

Real
integratedVariance(Size i, Size j, Time u, const Array& x = Null<Array>()) const override;
Real integratedVariance(Size i, Size j, Time u, const Array& x = {}) const override;

private:
void generateArguments() override;
Expand Down
7 changes: 3 additions & 4 deletions ql/legacy/libormarketmodels/lmvolmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,9 @@ namespace QuantLib {
std::vector<Parameter> & params();
void setParams(const std::vector<Parameter> & arguments);

virtual Array volatility(Time t, const Array& x = Null<Array>()) const = 0;
virtual Volatility volatility(Size i, Time t, const Array& x = Null<Array>()) const;
virtual Real integratedVariance(Size i, Size j, Time u,
const Array& x = Null<Array>()) const;
virtual Array volatility(Time t, const Array& x = {}) const = 0;
virtual Volatility volatility(Size i, Time t, const Array& x = {}) const;
virtual Real integratedVariance(Size i, Size j, Time u, const Array& x = {}) const;

protected:
const Size size_;
Expand Down
2 changes: 1 addition & 1 deletion test-suite/libormarketmodelprocess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE(testLambdaBootstrapping) {

ext::shared_ptr<LiborForwardModelProcess> process = makeProcess();

Matrix covar = process->covariance(0.0, Null<Array>(), 1.0);
Matrix covar = process->covariance(0.0, {}, 1.0);

for (Size i=0; i<9; ++i) {
const Real calculated = std::sqrt(covar[i+1][i+1]);
Expand Down

0 comments on commit ef12f99

Please sign in to comment.