|
Special Relativity in Financial Modeling 1.0.0
Lorentz transforms, spacetime classification, and geodesic price paths for quantitative finance
|
#include <lorentz_transform.hpp>
Public Member Functions | |
| LorentzTransform ()=delete | |
Static Public Member Functions | |
| static bool | isValidBeta (double beta) noexcept |
| static std::optional< LorentzFactor > | gamma (BetaVelocity beta) noexcept |
| static std::optional< double > | dilateTime (double proper_time, BetaVelocity beta) noexcept |
| static std::optional< RelativisticSignal > | applyMomentumCorrection (double raw_signal, BetaVelocity beta, double effective_mass) noexcept |
| static BetaVelocity | composeVelocities (BetaVelocity beta1, BetaVelocity beta2) noexcept |
| static std::optional< double > | inverseTransform (double dilated_value, BetaVelocity beta) noexcept |
| static std::optional< double > | contractLength (double proper_length, BetaVelocity beta) noexcept |
| static std::optional< double > | rapidity (BetaVelocity beta) noexcept |
| static std::optional< double > | totalEnergy (BetaVelocity beta, double effective_mass, double c_market=constants::SPEED_OF_INFORMATION) noexcept |
Lorentz Transform Engine.
Static utility class providing all core special-relativistic transforms expressed in terms of the normalised velocity parameter β.
Definition at line 43 of file lorentz_transform.hpp.
|
delete |
|
staticnoexcept |
Apply relativistic momentum correction: p = γ · m_eff · raw_signal.
The relativistic momentum analog amplifies signals proportionally to γ. In the Newtonian limit (β → 0) this reduces to classical momentum p = m_eff · raw_signal.
raw_signal — Unscaled signal value (any finite double)beta — Normalised market velocityeffective_mass — Liquidity-proxy mass parameter (must be > 0)Some(signal) with adjusted_value = γ · m_eff · raw_signalNone if effective_mass ≤ 0 or β is invalid Definition at line 58 of file lorentz_transform.cpp.
|
staticnoexcept |
Relativistic velocity addition: β_total = (β₁ + β₂) / (1 + β₁β₂).
Composes two market velocities according to the relativistic addition law. Guarantees |β_total| < 1 when |β₁|, |β₂| < 1, preserving the sub-luminal constraint even for large individual velocities.
This is not approximate: it is the exact special-relativistic formula.
beta1, beta2 — Two market velocities to composeThe composed velocity. Always sub-luminal if inputs are sub-luminal.
Definition at line 84 of file lorentz_transform.cpp.
|
staticnoexcept |
Apply length contraction: L = L₀ / γ.
In the financial analogy: the "length" of a price move (e.g. a spread or range) contracts in the observer frame when the market is moving.
proper_length — Rest-frame length (must be > 0)beta — Normalised market velocitySome(L) with 0 < L ≤ proper_lengthNone if proper_length ≤ 0 or β is invalid Definition at line 118 of file lorentz_transform.cpp.
|
staticnoexcept |
Apply time dilation: t_dilated = γ · τ_proper.
In the financial context: a signal's effective age is stretched by γ in a fast-moving market, making it appear more recent and more relevant.
proper_time — Signal age in the market's rest frame (must be ≥ 0)beta — Normalised market velocitySome(t) where t ≥ proper_time (dilation never compresses time)None if proper_time < 0 or β is invalid Definition at line 40 of file lorentz_transform.cpp.
|
staticnoexcept |
Compute the Lorentz factor γ = 1 / √(1 − β²).
At β = 0: γ = 1 (Newtonian limit — no relativistic correction). At β → 1: γ → ∞ (signals infinitely amplified in the market frame).
Some(γ) with γ ≥ 1.0 for valid βNone if β is invalid (|β| ≥ 1, NaN, or ±∞) Definition at line 20 of file lorentz_transform.cpp.
|
staticnoexcept |
Recover the proper value from a dilated value: τ = t / γ.
Inverse of dilateTime. Useful for converting a gamma-weighted indicator back to its raw frame value.
Some(τ) = dilated_value / γNone if β is invalid Definition at line 105 of file lorentz_transform.cpp.
|
staticnoexcept |
Return true if β is finite and strictly within the safe range.
Valid range: |β| < BETA_MAX_SAFE (= 0.9999). NaN, ±infinity, and |β| ≥ 1 are all invalid.
Definition at line 12 of file lorentz_transform.cpp.
|
staticnoexcept |
Compute rapidity: φ = atanh(β).
Rapidity is additive under velocity composition: φ(β₁ ⊕ β₂) = φ(β₁) + φ(β₂)
This makes rapidity the natural coordinate for combining market velocity signals from multiple assets.
Some(φ) ∈ (−∞, +∞)None if β is invalid (|β| ≥ 1 makes atanh undefined) Definition at line 137 of file lorentz_transform.cpp.
|
staticnoexcept |
Compute relativistic energy: E = γ · m_eff · c²_market.
Total relativistic energy (rest + kinetic) in the financial frame. Rest energy E₀ = m_eff · c²_market (baseline liquidity × volatility).
beta — Normalised market velocityeffective_mass — Liquidity-proxy mass (must be > 0)c_market — Speed of information (default = SPEED_OF_INFORMATION)Some(E) ≥ E₀None if effective_mass ≤ 0 or β is invalid Definition at line 153 of file lorentz_transform.cpp.