24#ifndef quantlib_fdm_bates_op_hpp
25#define quantlib_fdm_bates_op_hpp
27#include <ql/math/integrals/gaussianquadratures.hpp>
28#include <ql/methods/finitedifferences/operators/fdmhestonop.hpp>
29#include <ql/methods/finitedifferences/utilities/fdmboundaryconditionset.hpp>
33 class LinearInterpolation;
38 FdmBatesOp(
const ext::shared_ptr<FdmMesher>& mesher,
39 const ext::shared_ptr<BatesProcess>& batesProcess,
41 Size integroIntegrationOrder,
42 const ext::shared_ptr<FdmQuantoHelper>& quantoHelper =
43 ext::shared_ptr<FdmQuantoHelper>());
68 const ext::shared_ptr<LinearInterpolation>&
interpl_;
101 const Array& r)
const {
102 return hestonOp_->apply_direction(direction, r);
108 return hestonOp_->solve_splitting(direction, r, s);
1-D array used in linear algebra.
const ext::shared_ptr< LinearInterpolation > & interpl_
const FdmBoundaryConditionSet & bcSet_
Real operator()(Real y) const
GaussHermiteIntegration gaussHermiteIntegration_
Size size() const override
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.
const FdmBoundaryConditionSet bcSet_
Array apply_mixed(const Array &r) const override
Array integro(const Array &r) const
const ext::shared_ptr< FdmMesher > mesher_
Array solve_splitting(Size direction, const Array &r, Real s) const override
const ext::shared_ptr< FdmHestonOp > hestonOp_
Array apply(const Array &r) const override
generalized Gauss-Hermite integration
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container
OperatorTraits< FdmLinearOp >::bc_set FdmBoundaryConditionSet