22std::vector<double>
solve_tridiagonal(
const std::vector<double>&
a,
const std::vector<double>& b,
23 const std::vector<double>& c,
const std::vector<double>& d);
Finite-difference PDE pricer (CrankâNicolson) for European options.
Definition pde.hpp:9
PdeResult price_crank_nicolson(const PdeParams &p)
Definition pde.cpp:182
std::vector< double > solve_tridiagonal(const std::vector< double > &a, const std::vector< double > &b, const std::vector< double > &c, const std::vector< double > &d)
Definition pde.cpp:144
OptionType
Definition barrier.hpp:6
unsigned a
Definition sobol.cpp:17
Grid specification for PDE solver.
Definition pde.hpp:12
double stretch
Definition pde.hpp:16
int num_space
Definition pde.hpp:13
double s_max_mult
Definition pde.hpp:15
int num_time
Definition pde.hpp:14
PDE pricing parameters and grid configuration.
Definition pde.hpp:26
std::optional< quant::PiecewiseConstant > dividend_schedule
Definition pde.hpp:46
std::optional< quant::PiecewiseConstant > vol_schedule
Definition pde.hpp:47
double rate
Definition pde.hpp:29
bool use_rannacher
Apply two-step Rannacher start-up when true.
Definition pde.hpp:43
std::optional< quant::PiecewiseConstant > rate_schedule
Definition pde.hpp:45
::quant::OptionType type
Definition pde.hpp:33
bool log_space
Use log-space grid x = ln(S) for improved stability near boundaries.
Definition pde.hpp:36
double time
Definition pde.hpp:32
double spot
Definition pde.hpp:27
double vol
Definition pde.hpp:31
bool compute_theta
Request backward-difference Theta in addition to price/Delta/Gamma.
Definition pde.hpp:41
double strike
Definition pde.hpp:28
double dividend
Definition pde.hpp:30
GridSpec grid
Definition pde.hpp:34
UpperBoundary
Upper boundary condition type.
Definition pde.hpp:38
UpperBoundary upper_boundary
Definition pde.hpp:39
double gamma
Definition pde.hpp:53
std::optional< double > theta
Definition pde.hpp:54
double delta
Definition pde.hpp:52
double price
Definition pde.hpp:51