24#ifndef quantext_gaussian1d_crossasset_adaptor_hpp
25#define quantext_gaussian1d_crossasset_adaptor_hpp
27#include <ql/models/shortrate/onefactormodels/gaussian1dmodel.hpp>
43 Real
numeraireImpl(
const Time t,
const Real y,
const Handle<YieldTermStructure>& yts)
const override;
44 Real
zerobondImpl(
const Time T,
const Time t,
const Real y,
const Handle<YieldTermStructure>& yts)
const override;
62 const QuantLib::ext::shared_ptr<LinearGaussMarkovModel>
x_;
68 const Handle<YieldTermStructure>& yts)
const {
69 Real d = yts.empty() ? 1.0 :
x_->parametrization()->termStructure()->discount(t) / yts->discount(t);
70 Real x = y * std::sqrt(
x_->parametrization()->zeta(t));
71 return d *
x_->numeraire(t, x);
75 const Handle<YieldTermStructure>& yts)
const {
78 :
x_->parametrization()->termStructure()->discount(t) /
79 x_->parametrization()->termStructure()->discount(T) * yts->discount(T) / yts->discount(t);
80 Real x = y * std::sqrt(
x_->parametrization()->zeta(t));
81 return d *
x_->discountBond(t, T, x);
Gaussian 1d Cross Asset adaptor.
Real zerobondImpl(const Time T, const Time t, const Real y, const Handle< YieldTermStructure > &yts) const override
const QuantLib::ext::shared_ptr< LinearGaussMarkovModel > x_
Real numeraireImpl(const Time t, const Real y, const Handle< YieldTermStructure > &yts) const override
adaptor class that extracts one irlgm1f component