pub fn boost(four_vec: &FourVector, velocity: Vec3, c: f64) -> FourVectorExpand description
General Lorentz boost of a four-vector along an arbitrary velocity direction.
The time component is c t (the same units as x, y, z), matching the
Minkowski product in FourVector::dot. With beta = v / c and
n = v / |v|:
t’ = gamma (t - beta . r)
r’ = r + (gamma - 1)(r . n) n - gamma beta t
The old version mixed conventions (it divided r . v by c^2 but subtracted v t, as if t were seconds), so boosts did not preserve the interval: (10, 1, 2, 0) at 0.5c went from 95 to about -3e18.