fv_absorb_weights ================= .. py:function:: t3toolbox.backend.fv_operations.fv_absorb_weights(variations, weights) .. code-block:: python def fv_absorb_weights( variations: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]], # (tucker_variations V, tt_variations H) weights: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray]], # (up, down, left, right), each len=d ) -> typ.Tuple[ typ.Tuple[NDArray, ...], # weighted tucker_variations, elm_shape=stack+(nDi, Ni) typ.Tuple[NDArray, ...], # weighted tt_variations, elm_shape=stack+(rLi, nUi, rRi) ]: Absorb the four-family metric weights into the VARIATION cores (the tangent metric on coordinates, Approach-1 / metric-on-variations): ``down`` -> V's ``nD`` leg; ``up``/``left``/``right`` -> H's ``nU``/``rL``/``rR`` legs. The frame is left orthonormal and untouched. ``corewise_stack_norm`` of the result is the weighted (Grasedyck-Kramer) tangent norm. All families are len=d (one per variation core); single leading ``'...'`` -- the weights share the variations' ``K+C`` stack.