tv_to_t3#

t3toolbox.backend.tv_operations.tv_to_t3(frame, variations, include_shift=False)#
def tv_to_t3(
        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
        ],
        include_shift:  bool = False,  # False: tangent vector v. True: base point + v.
) -> typ.Tuple[
    typ.Tuple[NDArray, ...],  # tucker_cores (doubled Tucker ranks)
    typ.Tuple[NDArray, ...],  # tt_cores     (doubled TT ranks)
]:

Doubled-rank Tucker tensor train representing a frame-variations tangent vector.

The Tucker cores become [U_i; V_i] (stacked along the Tucker-rank axis); the TT cores form the standard block-bidiagonal embedding. With include_shift=True the base point is folded into the last TT core so the result represents base point + v. Stack-aware.

Equations (50)-(53) and Figure 20, Appendix A.3.1, 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]])

  • include_shift (bool)

Return type:

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