27#include <ql/cashflows/couponpricer.hpp>
28#include <ql/indexes/swapindex.hpp>
29#include <ql/math/integrals/integral.hpp>
30#include <ql/termstructures/volatility/smilesection.hpp>
31#include <ql/termstructures/yieldtermstructure.hpp>
37class DurationAdjustedCmsCoupon;
42 const Handle<SwaptionVolatilityStructure>& swaptionVol,
43 const QuantLib::ext::shared_ptr<AnnuityMappingBuilder>& annuityMappingBuilder,
const Real lowerIntegrationBound = -0.3,
44 const Real upperIntegrationBound = 0.3,
45 const QuantLib::ext::shared_ptr<Integrator>& integrator = QuantLib::ext::shared_ptr<Integrator>());
50 Rate
capletRate(Rate effectiveCap)
const override;
56 Real
optionletRate(Option::Type type, Real effectiveStrike)
const;
base class for annuity mapping functions used in TSR models
Real capletPrice(Rate effectiveCap) const override
Rate floorletRate(Rate effectiveFloor) const override
QuantLib::ext::shared_ptr< SmileSection > smileSection_
Real optionletRate(Option::Type type, Real effectiveStrike) const
const DurationAdjustedCmsCoupon * coupon_
void initialize(const FloatingRateCoupon &coupon) override
Real lowerIntegrationBound_
QuantLib::ext::shared_ptr< AnnuityMappingBuilder > annuityMappingBuilder_
QuantLib::ext::shared_ptr< Integrator > integrator_
Rate swapletRate() const override
Real upperIntegrationBound_
Real floorletPrice(Rate effectiveFloor) const override
Real swapletPrice() const override
Rate capletRate(Rate effectiveCap) const override
QuantLib::ext::shared_ptr< AnnuityMapping > annuityMapping_