13 static constexpr double INV_SQRT_2PI = 0.39894228040143267794;
14 return INV_SQRT_2PI * std::exp(-0.5 * x * x);
21inline double normal_cdf(
double x) {
return 0.5 * std::erfc(-x / std::sqrt(2.0)); }
44inline double d1(
double S,
double K,
double r,
double q,
double sigma,
double T) {
45 const double vol_sqrt_t =
sigma * std::sqrt(
T);
46 return (std::log(
S /
K) + (
r -
q + 0.5 *
sigma *
sigma) *
T) / vol_sqrt_t;
54inline double d2(
double d1_value,
double sigma,
double T) {
return d1_value -
sigma * std::sqrt(
T); }
92double gamma(
double S,
double K,
double r,
double q,
double sigma,
double T);
93double vega(
double S,
double K,
double r,
double q,
double sigma,
double T);
double S
Definition bs_barrier_rr.cpp:14
double sigma
Definition bs_barrier_rr.cpp:19
double q
Definition bs_barrier_rr.cpp:18
double K
Definition bs_barrier_rr.cpp:15
double r
Definition bs_barrier_rr.cpp:17
double T
Definition bs_barrier_rr.cpp:20
quant::stats::Welford vega
Definition mc.cpp:54
Analytic Black–Scholes European option pricing and Greeks.
Definition black_scholes.hpp:6
double put_price(double S, double K, double r, double q, double sigma, double T)
Price a European put option under Black–Scholes (present value).
Definition black_scholes.cpp:23
double theta_call(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.cpp:71
double rho_call(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.cpp:117
double d2(double d1_value, double sigma, double T)
Definition black_scholes.hpp:54
double normal_cdf(double x)
Definition black_scholes.hpp:21
double implied_vol_put(double S, double K, double r, double q, double T, double price)
Definition black_scholes.cpp:258
double rho_put(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.cpp:136
double d1(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.hpp:44
double theta_put(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.cpp:96
double delta_put(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.cpp:47
double call_price(double S, double K, double r, double q, double sigma, double T)
Price a European call option under Black–Scholes (present value).
Definition black_scholes.cpp:6
double normal_pdf(double x)
Definition black_scholes.hpp:12
double delta_call(double S, double K, double r, double q, double sigma, double T)
Definition black_scholes.cpp:39
double implied_vol_call(double S, double K, double r, double q, double T, double price)
Definition black_scholes.cpp:254
double gamma
Definition pde.cpp:93
Definition black_scholes.hpp:27
double vol
Definition black_scholes.hpp:32
double dividend
Definition black_scholes.hpp:31
double strike
Definition black_scholes.hpp:29
double time
Definition black_scholes.hpp:33
double spot
Definition black_scholes.hpp:28
double rate
Definition black_scholes.hpp:30