24#ifndef quantlib_fdm_zabr_op_hpp
25#define quantlib_fdm_zabr_op_hpp
27#include <ql/methods/finitedifferences/meshers/fdmmesher.hpp>
28#include <ql/methods/finitedifferences/operators/firstderivativeop.hpp>
29#include <ql/methods/finitedifferences/operators/triplebandlinearop.hpp>
30#include <ql/methods/finitedifferences/operators/ninepointlinearop.hpp>
31#include <ql/methods/finitedifferences/operators/fdmlinearopcomposite.hpp>
38 const ext::shared_ptr<FdmMesher>& mesher,
Real beta,
Real nu,
Real rho,
Real gamma);
54 const ext::shared_ptr<FdmMesher>& mesher,
Real beta,
Real nu,
Real rho,
Real gamma);
69 FdmZabrOp(
const ext::shared_ptr<FdmMesher>& mesher,
1-D array used in linear algebra.
FdmZabrVolatilityPart dyMap_
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.
Array apply_mixed(const Array &r) const override
const Array volatilityValues_
Array solve_splitting(Size direction, const Array &r, Real s) const override
const Array forwardValues_
NinePointLinearOp dxyMap_
Array apply(const Array &r) const override
FdmZabrUnderlyingPart dxMap_
void setTime(Time t1, Time t2)
const TripleBandLinearOp & getMap() const
const Array volatilityValues_
const ext::shared_ptr< FdmMesher > mesher_
const Array forwardValues_
void setTime(Time t1, Time t2)
const TripleBandLinearOp & getMap() const
const Array volatilityValues_
const ext::shared_ptr< FdmMesher > mesher_
const Array forwardValues_
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container