fv_absorb_weights#
- t3toolbox.backend.fv_operations.fv_absorb_weights(variations, weights)#
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’snDleg;up/left/right-> H’snU/rL/rRlegs. The frame is left orthonormal and untouched.corewise_stack_normof 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+Cstack.- Parameters:
variations (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])
weights (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])
- Return type:
t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[NDArray, Ellipsis]]