ManifoldGeometry.retract ======================== .. py:method:: t3toolbox.manifold.ManifoldGeometry.retract(p) .. code-block:: python def retract( self, p: T3Tangent, # step (a tangent at the current point's frame) ) -> t3.TuckerTensorTrain: # retracted point on M, at p's frame ranks Retract the step ``p`` to the manifold: shifted doubled-rank embedding, truncated to frame ranks. Forms ``base point + p`` and truncates back to ``p``'s frame ranks via the implicit T3-SVD (Algorithm 10). The current point is carried by ``p.frame`` (its orthonormal frame), so no separate point argument is needed. **Safe mode** requires ``p``'s frame to be **orthogonal** (raises otherwise); skipped under ``safety.unsafe()`` / a jax trace. ORTH only -- retract is gauge-invariant. Minimal rank is a documented *caveat*, not a precondition: on a non-minimal frame retract stays a valid first-order retraction but drops the numerically-redundant rank rather than preserving it strictly (``docs/numerical_contracts.md``).