37class CoordinateNormalizer;
51struct SpacetimeEvent {
87 [[nodiscard]]
static std::optional<double>
96 classify(
double interval_squared)
noexcept;
111 [[
nodiscard]]
static std::optional<IntervalType>
125 [[
nodiscard]]
static std::optional<double>
151 [[
nodiscard]]
static std::optional<IntervalType>
static bool is_causal(const SpacetimeEvent &a, const SpacetimeEvent &b) noexcept
True if the trajectory from a to b is causal (timelike or lightlike).
static std::optional< double > beta(const SpacetimeEvent &a, const SpacetimeEvent &b, double c_market=constants::SPEED_OF_INFORMATION) noexcept
static std::optional< IntervalType > classify(const SpacetimeEvent &a, const SpacetimeEvent &b) noexcept
static std::optional< IntervalType > process(srfm::CoordinateNormalizer &normalizer, const SpacetimeEvent &prev_normalized, const SpacetimeEvent &curr_raw) noexcept
static IntervalType classify(double interval_squared) noexcept
static std::optional< double > compute(const SpacetimeEvent &a, const SpacetimeEvent &b, double c_market=constants::SPEED_OF_INFORMATION) noexcept
Physical and financial constants for the SRFM system.
static constexpr double SPEED_OF_INFORMATION
const char * to_string(IntervalType t) noexcept
Convert IntervalType to a human-readable string.
IntervalType
Causal character of a spacetime interval.
@ Timelike
ds² < 0 — causal market movement (β < c)
@ Spacelike
ds² > 0 — stochastic regime (no causal link)
@ Lightlike
ds² ≈ 0 — information propagation at c
A point in 4D spacetime (t, x, y, z).
double volume
Volume spatial coordinate.
double price
Price spatial coordinate.
double time
Market time coordinate (bar index or timestamp)
double momentum
Momentum spatial coordinate.