tv_retract#

t3toolbox.backend.tv_operations.tv_retract(frame, variations)#
def tv_retract(
        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, ...],  # tucker_cores (retracted T3, base-point ranks)
    typ.Tuple[NDArray, ...],  # tt_cores
]:

Retract a frame-variations tangent vector onto the fixed-rank manifold.

Forms the shifted doubled-rank embedding (base point + v) via tv_to_t3() (include_shift=True) and truncates it back to the base point’s own ranks – the Tucker up ranks and left TT ranks read off the frame cores – with the implicit T3-SVD, yielding a point on the manifold of the base point’s ranks.

The truncation is the implicit T3-SVD (Algorithm 10) 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]])

Return type:

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