32#include "../tensor/n_asset_manifold.hpp"
63 [[nodiscard]] Eigen::VectorXd
to_coords() const noexcept;
149 [[nodiscard]] static
IntervalType classify(
double ds_sq) noexcept;
156 return IntervalType::LIGHTLIKE;
158 return ds_sq < 0.0 ? IntervalType::TIMELIKE : IntervalType::SPACELIKE;
Computes spacetime intervals between N-asset events.
NAssetInterval() noexcept=default
Default constructor.
(N+1)-dimensional Lorentzian manifold for N financial assets.
IntervalType
Causal character of a spacetime interval.
@ TIMELIKE
ds² < 0 (causal separation; price change < time*c_market).
@ LIGHTLIKE
|ds²| < threshold (on the light cone).
@ SPACELIKE
ds² > 0 (space-like; price change > time*c_market).
constexpr double LIGHTLIKE_THRESHOLD
|ds²| below this value is classified as LIGHTLIKE.
Result of a single interval computation.
double ds_sq
Squared interval ds².
IntervalType type
TIMELIKE, SPACELIKE, or LIGHTLIKE.
double magnitude
sqrt(|ds²|).
A spacetime event: a moment in time with N asset prices.
static std::optional< NAssetEvent > make(double t, Eigen::VectorXd prices) noexcept
Factory: validate and construct an NAssetEvent.
Eigen::VectorXd prices
N asset price coordinates.
Eigen::VectorXd to_coords() const noexcept
Concatenate (t, prices) into a single (N+1)-vector.