utv_to_ut3#
- t3toolbox.backend.utv_operations.utv_to_ut3(frame_data, variations_data, include_shift=False)#
def utv_to_ut3( frame_data, # UT3Frame .data: (up, down, left, right, shape, (4 masks)), supercore stack = C variations_data, # UT3Variations .data: (tkv, ttv, shape, (4 masks)), supercore stack = K + C include_shift: bool = False, # False: tangent vector v. True: base point + v. ): # -> doubled-rank UniformTuckerTensorTrain .data: (tucker_supercore, tt_supercore, shape, (tucker_mask, tt_mask))
Doubled-rank uniform Tucker tensor train representing a uniform frame-variations tangent vector.
The uniform mirror of
tv_operations.tv_to_t3()(equations (50)-(53) / Figure 20, Appendix A.3.1 of Alger et al. 2026). The Tucker supercore becomes[U ; V](concat along the Tucker-rank axis); the TT supercore is the block-bidiagonal embedding, uniform-padded to bondsrL+rRfor every core with the base-inner ``[R, L]`` bond order (mirroring the ragged build). The doubled rank masks are concatenations of the existing masks (the #1 trap: the appended boundary slots are FULLones– the supercore is zero there, so to_dense’s mask-then-contract is unaffected):tucker_mask = concat([up, down]);tt_mask = concat([right_ext, left_ext])withleft_ext = [var_left, ones]andright_ext = [ones, var_right].Stack-aware: the variation supercores carry
K + C; the frame supercores (stackC) are broadcast up toK + C(mirror raggedbcast), and the masks (host numpy, carryingK + Calready from the variations) are concatenated on the host. Withinclude_shift=Truethe base point is folded into the last core (base point + v).- Parameters:
include_shift (bool)