tv_orthogonal_gauge_projection#

t3toolbox.backend.tv_operations.tv_orthogonal_gauge_projection(frame, variations, shared_data=None)#
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
        ],
        shared_data: typ.Optional['sharing_module.SharedFrameData'] = None,  # tied post-pass (SF-T3)
) -> 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. Uniform twin: utv_orthogonal_gauge_projection().

With shared_data (the frame’s SF-T3 companion, fv_shared_frame_data()), the gauge projection is followed by the tied post-pass (fv_share_tucker_variations()) – the composition is the orthogonal projection onto the TIED gauged tangent subspace, since the tied subspace is contained in the gauged one. Default None: unchanged behavior.

Gauge conditions (48)-(49), Appendix A.3, of Alger et al. (2026), “Tucker Tensor Train Taylor Series” (arXiv:2603.21141).

Parameters:
  • frame (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • variations (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • shared_data (t3toolbox.backend.common.typ.Optional[SharedFrameData])

Return type:

t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[NDArray, …], t3toolbox.backend.common.typ.Tuple[NDArray, …]]