ufv_base_point_tangent ====================== .. py:function:: t3toolbox.backend.geometry.ufv_base_point_tangent(frame_data) .. code-block:: python 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 :py:func:`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 :py:func:`~t3toolbox.backend.ufv_operations.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.