utv_retract#
- t3toolbox.backend.utv_operations.utv_retract(frame_data, variations_data)#
def utv_retract( frame_data, # UT3Frame .data: supercore stack = C variations_data, # UT3Variations .data: supercore stack = K + C ): # -> retracted UniformTuckerTensorTrain .data (at the BASE point's ranks; stack = K + C)
Retract a uniform frame-variations tangent vector onto the fixed-rank manifold.
Forms the shifted doubled-rank embedding
base point + v(utv_to_ut3()withinclude_shift=True) and truncates it back to the base point’s own ranks – the Tuckerupranks andleftTT ranks read off the frame masks – via the mask-truncated uniform T3-SVD. The output is a UT3 at the frame padded dims (ut3svdtruncates by max rank to a fixed shape, so no extra slice is needed), one retracted point per stack element. The uniform mirror oftv_operations.tv_retract()(the implicit T3-SVD / Algorithm 10, Alger et al. 2026).Varying ranks across ``C`` work for free: the per-
Cframe ranks are the per-element truncation targets. The ``K`` (tangent) stack: the frame ranks have stackCwhile the shifted UT3 has stackK + C, so the frame ranks are broadcast overK(theKtangents share the frame, hence the same truncation targets).