27 const Natural rebateSettlementDays,
30 :
Exercise(exercise), rebates_(
std::vector<
Real>(dates().size(), rebate)),
31 rebateSettlementDays_(rebateSettlementDays),
32 rebatePaymentCalendar_(
std::move(rebatePaymentCalendar)),
33 rebatePaymentConvention_(rebatePaymentConvention) {}
36 const std::vector<Real>& rebates,
37 const Natural rebateSettlementDays,
40 :
Exercise(exercise), rebates_(rebates), rebateSettlementDays_(rebateSettlementDays),
41 rebatePaymentCalendar_(
std::move(rebatePaymentCalendar)),
42 rebatePaymentConvention_(rebatePaymentConvention) {
46 "a rebate vector is allowed only for a bermudan style exercise");
49 "the number of rebates ("
51 <<
") must be equal to the number of exercise dates ("
const std::vector< Date > & dates() const
Returns all exercise dates.
const std::vector< Real > & rebates() const
RebatedExercise(const Exercise &exercise, Real rebate=0.0, Natural rebateSettlementDays=0, Calendar rebatePaymentCalendar=NullCalendar(), BusinessDayConvention rebatePaymentConvention=Following)
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
BusinessDayConvention
Business Day conventions.
unsigned QL_INTEGER Natural
positive integer
Option exercise with rebate payments.