<kiyosi/pricing/settings/finite_difference.hpp>
#include <kiyosi/pricing/settings/finite_difference.hpp>FiniteDifferenceScheme
enum class FiniteDifferenceSchemeTime-marching schemes supported by finite-difference engines.
枚举值
explicit_euler— First-order explicit Euler scheme.implicit_euler— First-order implicit Euler scheme.crank_nicolson— Second-order Crank-Nicolson scheme.
validate_finite_difference_settings
Result<void> kiyosi::validate_finite_difference_settings(const FiniteDifferenceSettings &settings)Validates shared finite-difference grid settings; engine-specific limits are checked by engine factories. 参数
settings— Settings to validate.
返回值: Success, or an invalid_parameter error.
kiyosi::FiniteDifferenceSettings
struct kiyosi::FiniteDifferenceSettingsAggregate configuration validated when creating a finite-difference engine. The shared validator checks asset steps >= 3 and time steps >= 1. Vanilla, digital, and barrier engines accept at most 10,000 asset and 100,000 time steps; accumulator and autocallable engines accept at most 2,000 of each. An explicit scheme may impose a further stability constraint for the chosen market and grid. American vanilla and autocallable engines widen automatic domains with volatility and maturity. American grids and wide autocallable grids use sinh coordinates to retain asset resolution. Explicit upper boundaries still require a domain-convergence check.
成员
asset_step_count
int kiyosi::FiniteDifferenceSettings::asset_step_countNumber of spatial grid steps; must be at least three.
time_step_count
int kiyosi::FiniteDifferenceSettings::time_step_countNumber of time steps; must be positive.
scheme
FiniteDifferenceScheme kiyosi::FiniteDifferenceSettings::schemeTime-marching scheme.
asset_upper_boundary
std::optional<double> kiyosi::FiniteDifferenceSettings::asset_upper_boundaryPositive upper spot boundary, or automatic when absent.