30 const Real correlation,
34 Real illegalLocalVolOverwrite)
36 solverDesc_(
std::move(solverDesc)), schemeDesc_(schemeDesc), localVol_(localVol),
37 illegalLocalVolOverwrite_(illegalLocalVolOverwrite) {
46 ext::shared_ptr<Fdm2dBlackScholesOp> op(
60 const Real x = std::log(u);
61 const Real y = std::log(
v);
68 const Real x = std::log(u);
69 const Real y = std::log(
v);
77 const Real x = std::log(u);
78 const Real y = std::log(
v);
86 const Real x = std::log(u);
87 const Real y = std::log(
v);
95 const Real x = std::log(u);
96 const Real y = std::log(
v);
105 const Real x = std::log(u);
106 const Real y = std::log(
v);
115 const Real x = std::log(u);
116 const Real y = std::log(
v);
118 return solver_->derivativeXY(x,
y)/(u*
v);
const Handle< GeneralizedBlackScholesProcess > p2_
ext::shared_ptr< Fdm2DimSolver > solver_
void performCalculations() const override
Real gammaXYat(Real x, Real y) const
Fdm2dBlackScholesSolver(Handle< GeneralizedBlackScholesProcess > p1, Handle< GeneralizedBlackScholesProcess > p2, Real correlation, FdmSolverDesc solverDesc, const FdmSchemeDesc &schemeDesc=FdmSchemeDesc::Hundsdorfer(), bool localVol=false, Real illegalLocalVolOverwrite=-Null< Real >())
Real deltaXat(Real x, Real y) const
Real thetaAt(Real x, Real y) const
const FdmSolverDesc solverDesc_
Real valueAt(Real x, Real y) const
const Handle< GeneralizedBlackScholesProcess > p1_
Real deltaYat(Real x, Real y) const
Real gammaYat(Real x, Real y) const
Real gammaXat(Real x, Real y) const
const FdmSchemeDesc schemeDesc_
const Real illegalLocalVolOverwrite_
Shared handle to an observable.
virtual void calculate() const
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
ext::shared_ptr< BlackVolTermStructure > v
const ext::shared_ptr< FdmMesher > mesher