28#ifndef quantlib_floatfloat_swap_hpp
29#define quantlib_floatfloat_swap_hpp
39 class InterestRateIndex;
53 ext::shared_ptr<InterestRateIndex>
index1,
56 ext::shared_ptr<InterestRateIndex>
index2,
58 bool intermediateCapitalExchange =
false,
59 bool finalCapitalExchange =
false,
76 ext::shared_ptr<InterestRateIndex>
index1,
79 ext::shared_ptr<InterestRateIndex>
index2,
81 bool intermediateCapitalExchange =
false,
82 bool finalCapitalExchange =
false,
83 std::vector<Real>
gearing1 = std::vector<Real>(),
84 std::vector<Real>
spread1 = std::vector<Real>(),
85 std::vector<Real>
cappedRate1 = std::vector<Real>(),
87 std::vector<Real>
gearing2 = std::vector<Real>(),
88 std::vector<Real>
spread2 = std::vector<Real>(),
89 std::vector<Real>
cappedRate2 = std::vector<Real>(),
97 const std::vector<Real> &
nominal1()
const;
98 const std::vector<Real> &
nominal2()
const;
103 const ext::shared_ptr<InterestRateIndex> &
index1()
const;
104 const ext::shared_ptr<InterestRateIndex> &
index2()
const;
106 std::vector<Real>
spread1()
const;
107 std::vector<Real>
spread2()
const;
178 void reset()
override;
183 FloatFloatSwap::results> {};
205 inline const ext::shared_ptr<InterestRateIndex> &
210 inline const ext::shared_ptr<InterestRateIndex> &
Arguments for float float swap calculation
std::vector< Real > leg2AccrualTimes
ext::shared_ptr< InterestRateIndex > index1
std::vector< bool > leg2IsRedemptionFlow
std::vector< Real > leg1AccrualTimes
std::vector< Real > leg2CappedRates
std::vector< Real > leg2Gearings
std::vector< bool > leg1IsRedemptionFlow
std::vector< Real > leg1FlooredRates
std::vector< Real > leg2Spreads
std::vector< Date > leg1PayDates
ext::shared_ptr< InterestRateIndex > index2
std::vector< Real > leg1Gearings
std::vector< Real > leg1CappedRates
std::vector< Real > leg1Coupons
std::vector< Real > nominal1
std::vector< Real > nominal2
std::vector< Date > leg2FixingDates
std::vector< Date > leg2PayDates
std::vector< Date > leg2ResetDates
std::vector< Date > leg1ResetDates
std::vector< Real > leg1Spreads
std::vector< Date > leg1FixingDates
std::vector< Real > leg2FlooredRates
void validate() const override
std::vector< Real > leg2Coupons
Results from float float swap calculation
std::vector< Real > cappedRate2_
std::vector< Real > flooredRate2_
std::vector< Real > gearing2_
const DayCounter & dayCount2() const
const ext::shared_ptr< InterestRateIndex > & index1() const
const ext::shared_ptr< InterestRateIndex > & index2() const
std::vector< Real > gearing2() const
std::vector< Rate > flooredRate2() const
const std::vector< Real > & nominal2() const
std::vector< Real > nominal1_
const Schedule & schedule1() const
std::vector< Real > spread1_
std::vector< Real > cappedRate1_
std::vector< Real > spread2() const
const bool finalCapitalExchange_
BusinessDayConvention paymentConvention2() const
std::vector< Real > spread2_
const bool intermediateCapitalExchange_
std::vector< Real > nominal2_
std::vector< Real > gearing1_
std::vector< bool > isRedemptionFlow1_
std::vector< Real > spread1() const
BusinessDayConvention paymentConvention2_
void setupArguments(PricingEngine::arguments *args) const override
const std::vector< Real > & nominal1() const
BusinessDayConvention paymentConvention1_
std::vector< Real > flooredRate1_
const DayCounter & dayCount1() const
std::vector< Rate > flooredRate1() const
const Schedule & schedule2() const
ext::shared_ptr< InterestRateIndex > index1_
void init(ext::optional< BusinessDayConvention > paymentConvention1, ext::optional< BusinessDayConvention > paymentConvention2)
void setupExpired() const override
ext::shared_ptr< InterestRateIndex > index2_
void fetchResults(const PricingEngine::results *) const override
std::vector< Rate > cappedRate1() const
std::vector< Real > gearing1() const
std::vector< Rate > cappedRate2() const
BusinessDayConvention paymentConvention1() const
std::vector< bool > isRedemptionFlow2_
template base class for option pricing engines
template class providing a null value for a given type.
BusinessDayConvention
Business Day conventions.
const boost::none_t & nullopt
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.
Maps optional to either the boost or std implementation.
Simple fixed-rate vs Libor swap.