23#include <ql/methods/finitedifferences/operators/fdmlinearopcomposite.hpp>
24#include <ql/methods/finitedifferences/operators/firstderivativeop.hpp>
25#include <ql/methods/finitedifferences/operators/triplebandlinearop.hpp>
45 const QuantLib::ext::shared_ptr<QuantLib::FdmMesher>& mesher,
46 const QuantLib::ext::shared_ptr<DefaultableEquityJumpDiffusionModel>& model,
const Size direction = 0,
47 const std::function<Real(Real, Real, Real)>& recovery = {},
48 const Handle<QuantLib::YieldTermStructure>& discountingCurve = Handle<QuantLib::YieldTermStructure>(),
49 const Handle<QuantLib::Quote>& discountingSpread = Handle<QuantLib::Quote>(),
50 const Handle<QuantLib::DefaultProbabilityTermStructure>& addCreditCurve =
51 Handle<QuantLib::DefaultProbabilityTermStructure>(),
52 const std::function<Real(Real, Real, Real)>& addRecovery = {});
54 Size
size()
const override;
55 void setTime(Time t1, Time t2)
override;
57 Array
apply(
const Array& r)
const override;
60 Array
solve_splitting(Size direction,
const Array& r, Real s)
const override;
63#if !defined(QL_NO_UBLAS_SUPPORT)
64 std::vector<QuantLib::SparseMatrix>
toMatrixDecomp()
const override;
71 QuantLib::ext::shared_ptr<QuantLib::FdmMesher>
mesher_;
72 QuantLib::ext::shared_ptr<DefaultableEquityJumpDiffusionModel>
model_;
82 QuantLib::TripleBandLinearOp
mapT_;
std::function< Real(Real, Real, Real)> recovery_
Handle< QuantLib::DefaultProbabilityTermStructure > addCreditCurve_
Size size() const override
QuantLib::TripleBandLinearOp dxxMap_
Handle< QuantLib::YieldTermStructure > discountingCurve_
Array apply_direction(Size direction, const Array &r) const override
Array preconditioner(const Array &r, Real s) const override
std::function< Real(Real)> conversionRatio_
QuantLib::ext::shared_ptr< QuantLib::FdmMesher > mesher_
std::vector< QuantLib::SparseMatrix > toMatrixDecomp() const override
void setTime(Time t1, Time t2) override
Array apply_mixed(const Array &r) const override
Handle< QuantLib::Quote > discountingSpread_
Array solve_splitting(Size direction, const Array &r, Real s) const override
QuantLib::FirstDerivativeOp dxMap_
Array apply(const Array &r) const override
void setConversionRatio(const std::function< Real(Real)> &conversionRatio)
QuantLib::TripleBandLinearOp mapT_
QuantLib::ext::shared_ptr< DefaultableEquityJumpDiffusionModel > model_
std::function< Real(Real, Real, Real)> addRecovery_