98 double x_prime)
noexcept {
103 prev_t_prime_ = t_prime;
104 prev_x_prime_ = x_prime;
113 const double dt = t_prime - prev_t_prime_;
114 const double dx = x_prime - prev_x_prime_;
117 const double ds2 = dt * dt - dx * dx;
121 if (ds2 > epsilon_) {
123 result.
signal = std::sqrt(ds2);
124 }
else if (ds2 < -epsilon_) {
126 result.
signal = -std::sqrt(-ds2);
133 prev_t_prime_ = t_prime;
134 prev_x_prime_ = x_prime;
145 [[nodiscard]]
double prev_t_prime() const noexcept {
return prev_t_prime_; }
148 [[nodiscard]]
double prev_x_prime() const noexcept {
return prev_x_prime_; }
151 [[nodiscard]]
double epsilon() const noexcept {
return epsilon_; }
178 [[nodiscard]]
static double interval(
double dt,
double dx)
noexcept {
179 return dt * dt - dx * dx;
191 double epsilon = 1e-6) noexcept {
199 bool has_prev_{
false};
200 double prev_t_prime_{0.0};
201 double prev_x_prime_{0.0};
Minkowski interval computer for sequential Lorentz-boosted events.
void reset() noexcept
Reset all state as if no events have been seen.
bool has_previous() const noexcept
Whether at least one event has been ingested.
static double interval(double dt, double dx) noexcept
Compute the Minkowski interval for an arbitrary pair of events.
static Regime classify(double ds2, double epsilon=1e-6) noexcept
Classify a precomputed interval value.
double epsilon() const noexcept
Lightlike tolerance ε.
SpacetimeManifold(double epsilon=1e-6) noexcept
Construct with a custom lightlike tolerance.
double prev_x_prime() const noexcept
Previous boosted space coordinate.
double prev_t_prime() const noexcept
Previous boosted time coordinate.
ManifoldResult update(double t_prime, double x_prime) noexcept
Record a new transformed event and compute the interval from the last.
Regime
Spacetime interval regime derived from the Lorentz-transformed coordinates of consecutive ticks.
StreamRelativisticSignal — output unit of the signal-processing pipeline.
Result of a single manifold update — interval, regime, and signal.
double signal
±√|Δs²| (signed by regime).
double ds2
Minkowski interval Δs² = Δt'² − Δx'².
Regime regime
Spacetime classification.