tv_orthogonal_gauge_projection ============================== .. py:function:: t3toolbox.backend.tv_operations.tv_orthogonal_gauge_projection(frame, variations) .. code-block:: python def tv_orthogonal_gauge_projection( frame: typ.Tuple[ typ.Sequence[NDArray], # up_tucker_cores typ.Sequence[NDArray], # down_tt_cores typ.Sequence[NDArray], # left_tt_cores typ.Sequence[NDArray], # right_tt_cores ], variations: typ.Tuple[ typ.Sequence[NDArray], # tucker_variations typ.Sequence[NDArray], # tt_variations ], ) -> typ.Tuple[ typ.Tuple[NDArray, ...], # gauged_tucker_variations typ.Tuple[NDArray, ...], # gauged_tt_variations ]: Project the variations onto the gauge-satisfying subspace (orthogonal projection). Changes the represented tangent vector. The result satisfies, for an orthogonal frame, ``U_i V_i^T = 0`` (all i) and ``einsum('...abi,...abj->...ij', L_i, H_i) = 0`` (i = 0..d-2). Stack-aware. Ragged path only (uniform deferred). Gauge conditions (48)-(49), Appendix A.3, of Alger et al. (2026), "Tucker Tensor Train Taylor Series" (arXiv:2603.21141).