Skip to content

Commit 6284611

Browse files
committed
Deprecate DividendVanillaOption
1 parent 6cbdd94 commit 6284611

File tree

5 files changed

+18
-22
lines changed

5 files changed

+18
-22
lines changed

ql/instruments/dividendbarrieroption.hpp

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,31 +57,21 @@ namespace QuantLib {
5757
};
5858

5959

60-
//! %Arguments for dividend barrier option calculation
61-
/*! \deprecated If you're writing an engine for DividendBarrierOption,
62-
use BarrierOption instead and pass the dividends to the engine.
63-
Deprecated in version 1.30.
64-
*/
65-
class QL_DEPRECATED DividendBarrierOption::arguments : public BarrierOption::arguments {
60+
class DividendBarrierOption::arguments : public BarrierOption::arguments {
6661
public:
6762
DividendSchedule cashFlow;
6863
arguments() = default;
6964
void validate() const override;
7065
};
7166

7267
QL_DEPRECATED_DISABLE_WARNING
73-
//! %Dividend-barrier-option %engine base class
74-
/*! \deprecated If you're writing an engine for DividendBarrierOption,
75-
use BarrierOption instead and pass the dividends to the engine.
76-
Deprecated in version 1.30.
77-
*/
7868
class DividendBarrierOption::engine
7969
: public GenericEngine<DividendBarrierOption::arguments,
8070
DividendBarrierOption::results> {
81-
QL_DEPRECATED_ENABLE_WARNING
8271
protected:
8372
bool triggered(Real underlying) const;
8473
};
74+
QL_DEPRECATED_ENABLE_WARNING
8575

8676
}
8777

ql/instruments/dividendvanillaoption.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,11 @@ namespace QuantLib {
3333
class GeneralizedBlackScholesProcess;
3434

3535
//! Single-asset vanilla option (no barriers) with discrete dividends
36-
/*! \ingroup instruments */
37-
class DividendVanillaOption : public OneAssetOption {
36+
/*! \deprecated Use VanillaOption instead and pass the dividends
37+
to the desired engine.
38+
Deprecated in version 1.30.
39+
*/
40+
class QL_DEPRECATED DividendVanillaOption : public OneAssetOption {
3841
public:
3942
class arguments;
4043
class engine;
@@ -60,19 +63,18 @@ namespace QuantLib {
6063
DividendSchedule cashFlow_;
6164
};
6265

63-
64-
//! %Arguments for dividend vanilla option calculation
6566
class DividendVanillaOption::arguments : public OneAssetOption::arguments {
6667
public:
6768
DividendSchedule cashFlow;
6869
arguments() = default;
6970
void validate() const override;
7071
};
7172

72-
//! %Dividend-vanilla-option %engine base class
73+
QL_DEPRECATED_DISABLE_WARNING
7374
class DividendVanillaOption::engine
7475
: public GenericEngine<DividendVanillaOption::arguments,
7576
DividendVanillaOption::results> {};
77+
QL_DEPRECATED_ENABLE_WARNING
7678

7779
}
7880

ql/instruments/vanillaoption.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ namespace QuantLib {
9797
/* this is a workaround in case an engine is used for both vanilla
9898
and dividend options. The dividends might have been set by another
9999
instrument and need to be cleared. */
100+
QL_DEPRECATED_DISABLE_WARNING
100101
auto* arguments = dynamic_cast<DividendVanillaOption::arguments*>(args);
102+
QL_DEPRECATED_ENABLE_WARNING
101103
if (arguments != nullptr) {
102104
arguments->cashFlow.clear();
103105
}

ql/pricingengines/vanilla/fdbatesvanillaengine.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,10 @@ namespace QuantLib {
7171
tGrid_, xGrid_, vGrid_,
7272
dampingSteps_, schemeDesc_);
7373

74+
QL_DEPRECATED_DISABLE_WARNING
7475
*dynamic_cast<DividendVanillaOption::arguments*>(
7576
helperEngine.getArguments()) = arguments_;
77+
QL_DEPRECATED_ENABLE_WARNING
7678

7779
FdmSolverDesc solverDesc = helperEngine.getSolverDesc(2.0);
7880

test-suite/dividendoption.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,9 @@ void DividendOptionTest::testEuropeanValues() {
110110

111111
QL_DEPRECATED_DISABLE_WARNING
112112
ext::shared_ptr<PricingEngine> engine1(new AnalyticDividendEuropeanEngine(stochProcess));
113-
QL_DEPRECATED_ENABLE_WARNING
114113

115114
DividendVanillaOption option1(payoff, exercise, dividendDates, dividends);
115+
QL_DEPRECATED_ENABLE_WARNING
116116
option1.setPricingEngine(engine1);
117117

118118
auto engine2 =
@@ -208,10 +208,10 @@ void DividendOptionTest::testEuropeanKnownValue() {
208208
QL_DEPRECATED_DISABLE_WARNING
209209
ext::shared_ptr<PricingEngine> engine1(
210210
new AnalyticDividendEuropeanEngine(stochProcess));
211-
QL_DEPRECATED_ENABLE_WARNING
212211

213212
DividendVanillaOption option1(payoff, exercise,
214213
dividendDates, dividends);
214+
QL_DEPRECATED_ENABLE_WARNING
215215
option1.setPricingEngine(engine1);
216216

217217
auto engine2 = ext::make_shared<AnalyticDividendEuropeanEngine>(
@@ -302,9 +302,9 @@ void DividendOptionTest::testEuropeanStartLimit() {
302302
QL_DEPRECATED_DISABLE_WARNING
303303
ext::shared_ptr<PricingEngine> engine1(
304304
new AnalyticDividendEuropeanEngine(stochProcess));
305-
QL_DEPRECATED_ENABLE_WARNING
306305

307306
DividendVanillaOption option1(payoff, exercise, dividendDates, dividends);
307+
QL_DEPRECATED_ENABLE_WARNING
308308
option1.setPricingEngine(engine1);
309309

310310
auto engine2 = ext::make_shared<AnalyticDividendEuropeanEngine>(
@@ -401,9 +401,9 @@ void DividendOptionTest::testEuropeanEndLimit() {
401401
QL_DEPRECATED_DISABLE_WARNING
402402
ext::shared_ptr<PricingEngine> engine1(
403403
new AnalyticDividendEuropeanEngine(stochProcess));
404-
QL_DEPRECATED_ENABLE_WARNING
405404

406405
DividendVanillaOption option1(payoff, exercise, dividendDates, dividends);
406+
QL_DEPRECATED_ENABLE_WARNING
407407
option1.setPricingEngine(engine1);
408408

409409
auto engine2 = ext::make_shared<AnalyticDividendEuropeanEngine>(
@@ -499,9 +499,9 @@ void DividendOptionTest::testOldEuropeanGreeks() {
499499
QL_DEPRECATED_DISABLE_WARNING
500500
ext::shared_ptr<PricingEngine> engine(
501501
new AnalyticDividendEuropeanEngine(stochProcess));
502-
QL_DEPRECATED_ENABLE_WARNING
503502

504503
DividendVanillaOption option(payoff, exercise, dividendDates, dividends);
504+
QL_DEPRECATED_ENABLE_WARNING
505505
option.setPricingEngine(engine);
506506

507507
for (Real u : underlyings) {

0 commit comments

Comments
 (0)