25#ifndef quantext_analytic_lgm_swaption_engine_hpp
26#define quantext_analytic_lgm_swaption_engine_hpp
28#include <ql/instruments/swaption.hpp>
29#include <ql/cashflows/floatingratecoupon.hpp>
30#include <ql/cashflows/fixedratecoupon.hpp>
73 const Handle<YieldTermStructure>& discountCurve = Handle<YieldTermStructure>(),
78 const Handle<YieldTermStructure>& discountCurve = Handle<YieldTermStructure>(),
85 const Handle<YieldTermStructure>& discountCurve = Handle<YieldTermStructure>(),
94 void enableCache(
const bool lgm_H_constant =
true,
const bool lgm_alpha_constant =
false);
100 QuantLib::ext::shared_ptr<IrLgm1fParametrization>
p_;
101 Handle<YieldTermStructure>
c_;
107 mutable std::vector<QuantLib::ext::shared_ptr<FixedRateCoupon>>
fixedLeg_;
108 mutable std::vector<QuantLib::ext::shared_ptr<FloatingRateCoupon>>
floatingLeg_;
Analytic LGM swaption engine for european exercise.
QuantLib::ext::shared_ptr< IrLgm1fParametrization > p_
std::vector< QuantLib::ext::shared_ptr< FixedRateCoupon > > fixedLeg_
void calculate() const override
FloatSpreadMapping floatSpreadMapping_
Real yStarHelper(const Real y) const
void enableCache(const bool lgm_H_constant=true, const bool lgm_alpha_constant=false)
std::vector< QuantLib::ext::shared_ptr< FloatingRateCoupon > > floatingLeg_
Real flatAmount(const Size k) const
Handle< YieldTermStructure > c_