ufv_base_point_tangent#

t3toolbox.backend.geometry.ufv_base_point_tangent(frame_data)#
def ufv_base_point_tangent(
        frame_data:  typ.Tuple,   # uniform frame .data = (up_sc, down_sc, left_sc, right_sc, shape, masks)
) -> typ.Tuple:                   # v_X as a bare variation supercore pair (tucker_var_sc, tt_var_sc)

The uniform twin of fv_base_point_tangent(): the attachment point as a gauged tangent, all variation slots zero except the last TT slice, set to the frame’s last left core P_last.

The variation supercore shapes come from ufv_variation_shapes(), which is where the frame axis convention is written down. Do not re-derive them here: the tempting shortcut (“the Tucker variation has the up supercore’s shape”) holds only when nD == nU, which is true of most unshared ranks and false as soon as a sharing group’s rank differs from the down rank.

Parameters:

frame_data (t3toolbox.backend.common.typ.Tuple)

Return type:

t3toolbox.backend.common.typ.Tuple