77 [[nodiscard]] std::optional<double>
78 symbol(
int lambda,
int mu,
int nu,
79 const Eigen::VectorXd& x)
const noexcept;
90 [[nodiscard]] std::optional<std::vector<std::vector<std::vector<double>>>>
91 all_symbols(
const Eigen::VectorXd& x)
const noexcept;
106 double tol = 1e-10) const noexcept;
113 [[nodiscard]]
int dim() const noexcept;
129 [[nodiscard]] std::optional<
double>
130 metric_deriv(
int alpha,
int mu,
int nu,
131 const Eigen::VectorXd& x) const noexcept;
141 [[nodiscard]] std::optional<Eigen::MatrixXd>
142 inv_metric_at(const Eigen::VectorXd& x) const noexcept;
152 return manifold_.
dim();
Computes Christoffel symbols Γ^λ_μν for an NAssetManifold.
int dim() const noexcept
Return the dimension of the manifold.
static constexpr double FD_STEP
Central finite-difference step size used for metric derivatives.
bool verify_symmetry(const Eigen::VectorXd &x, double tol=1e-10) const noexcept
Verify that Γ^λ_μν = Γ^λ_νμ for all indices at point x.
std::optional< std::vector< std::vector< std::vector< double > > > > all_symbols(const Eigen::VectorXd &x) const noexcept
Compute all Christoffel symbols at point x.
std::optional< double > symbol(int lambda, int mu, int nu, const Eigen::VectorXd &x) const noexcept
Compute a single Christoffel symbol Γ^lambda_mu_nu at point x.
(N+1)-dimensional Lorentzian manifold for N financial assets.
int dim() const noexcept
Returns the full manifold dimension = n_assets + 1.
N-Asset Lorentzian Manifold for Special Relativistic Financial Mechanics.