ufv_weights_from_ut3_weights ============================ .. py:function:: t3toolbox.backend.ufv_operations.ufv_weights_from_ut3_weights(weights) .. code-block:: python def ufv_weights_from_ut3_weights( weights: typ.Tuple[NDArray, NDArray, typ.Tuple[NDArray, NDArray]], # UT3Weights .data ) -> UT3FrameWeightsData: # (up, down, left, right, masks) -- a tangent metric Build uniform frame weights (a tangent metric) from uniform base-point edge weights -- the twin of ``fv_weights_from_t3_weights``, and the same slicing, applied to supercores **and** masks: ``up = down = tucker``; ``left = tt[:-1]``, ``right = tt[1:]``. The TT slicing encodes the ``H_i`` bond convention (``H_i``'s left bond is TT bond ``i``, its right bond is bond ``i+1``), which turns the ``d+1`` bond supercore into the two ``d``-length families -- non-obvious, hence a named function. The result pairs with a **minimal-rank** tangent (where the complement rank ``nD`` equals the Tucker rank ``nU``, as for ``ut3svd`` output). A non-minimal tangent has ``nD < nU`` and would mismatch the ``down`` family at use -- caught by ``ufv_weights_consistent`` rather than silently absorbed.