27#ifndef quantlib_fdm_heston_op_hpp
28#define quantlib_fdm_heston_op_hpp
30#include <ql/processes/hestonprocess.hpp>
31#include <ql/methods/finitedifferences/utilities/fdmquantohelper.hpp>
32#include <ql/methods/finitedifferences/operators/firstderivativeop.hpp>
33#include <ql/methods/finitedifferences/operators/triplebandlinearop.hpp>
34#include <ql/methods/finitedifferences/operators/ninepointlinearop.hpp>
35#include <ql/methods/finitedifferences/operators/fdmlinearopcomposite.hpp>
36#include <ql/termstructures/volatility/equityfx/localvoltermstructure.hpp>
43 ext::shared_ptr<YieldTermStructure> rTS,
44 ext::shared_ptr<YieldTermStructure> qTS,
45 ext::shared_ptr<FdmQuantoHelper> quantoHelper,
46 ext::shared_ptr<LocalVolTermStructure> leverageFct =
47 ext::shared_ptr<LocalVolTermStructure>());
62 const ext::shared_ptr<YieldTermStructure>
rTS_,
qTS_;
70 ext::shared_ptr<YieldTermStructure> rTS,
82 const ext::shared_ptr<YieldTermStructure>
rTS_;
88 FdmHestonOp(
const ext::shared_ptr<FdmMesher>& mesher,
89 const ext::shared_ptr<HestonProcess>& hestonProcess,
90 const ext::shared_ptr<FdmQuantoHelper>& quantoHelper =
91 ext::shared_ptr<FdmQuantoHelper>(),
92 const ext::shared_ptr<LocalVolTermStructure>& leverageFct =
93 ext::shared_ptr<LocalVolTermStructure>(),
94 Real mixingFactor = 1.0);
1-D array used in linear algebra.
void setTime(Time t1, Time t2)
const Array & getL() const
const TripleBandLinearOp & getMap() const
const TripleBandLinearOp dxxMap_
const ext::shared_ptr< FdmQuantoHelper > quantoHelper_
const ext::shared_ptr< LocalVolTermStructure > leverageFct_
const ext::shared_ptr< YieldTermStructure > qTS_
const FirstDerivativeOp dxMap_
const ext::shared_ptr< FdmMesher > mesher_
Array getLeverageFctSlice(Time t1, Time t2) const
const ext::shared_ptr< YieldTermStructure > rTS_
Size size() const override
FdmHestonEquityPart dxMap_
FdmHestonVariancePart dyMap_
Array apply_direction(Size direction, const Array &r) const override
Array preconditioner(const Array &r, Real s) const override
std::vector< SparseMatrix > toMatrixDecomp() const override
void setTime(Time t1, Time t2) override
Time is required.
Array apply_mixed(const Array &r) const override
NinePointLinearOp correlationMap_
Array solve_splitting(Size direction, const Array &r, Real s) const override
Array apply(const Array &r) const override
void setTime(Time t1, Time t2)
const TripleBandLinearOp & getMap() const
const TripleBandLinearOp dyMap_
const ext::shared_ptr< YieldTermStructure > rTS_
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container