35 : process_(
std::move(process)),
strike_(strike), solverDesc_(
std::move(solverDesc)),
36 schemeDesc_(schemeDesc) {
42 ext::shared_ptr<FdmBlackScholesOp> op(ext::make_shared<FdmBlackScholesOp>(
50 return solver_->interpolateAt(std::log(
s), std::log(a));
63 return solver_->thetaAt(std::log(
s), std::log(a));
ext::shared_ptr< Fdm2DimSolver > solver_
void performCalculations() const override
FdmSimple2dBSSolver(Handle< GeneralizedBlackScholesProcess > process, Real strike, FdmSolverDesc desc, const FdmSchemeDesc &schemeDesc=FdmSchemeDesc::Douglas())
Real deltaAt(Real s, Real a, Real eps) const
const FdmSolverDesc solverDesc_
Real thetaAt(Real s, Real a) const
Real gammaAt(Real s, Real a, Real eps) const
Real valueAt(Real s, Real a) const
Handle< GeneralizedBlackScholesProcess > process_
const FdmSchemeDesc schemeDesc_
Shared handle to an observable.
virtual void calculate() const
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
Black Scholes linear operator.
const ext::shared_ptr< FdmMesher > mesher