tv_apply_jacobian_from_sweep#

t3toolbox.backend.apply.tv_apply_jacobian_from_sweep(variation, ww, frame, frame_sweep)#
def tv_apply_jacobian_from_sweep(
        variation:  typ.Tuple[
            typ.Sequence[NDArray],          # var_tucker_cores. len=d, elm_shape=K+C+(nOi,Ni)
            typ.Sequence[NDArray],          # var_tt_cores.     len=d, elm_shape=K+C+(rLi,nUi,rRi)
        ],
        ww:         typ.Sequence[NDArray],  # apply vectors, len=d, elm_shape=W+(Ni,) -- for the variation's dxis
        frame:       typ.Tuple[
            typ.Sequence[NDArray],          # up_tucker_cores  U. len=d  (unused; for a uniform call signature)
            typ.Sequence[NDArray],          # down_tt_cores    O. len=d
            typ.Sequence[NDArray],          # left_tt_cores    P. len=d  (unused)
            typ.Sequence[NDArray],          # right_tt_cores   Q. len=d
        ],                                  # frame order = T3Frame.data = (up, down, left, right)
        frame_sweep: typ.Tuple[
            typ.Sequence[NDArray],          # xis
            typ.Sequence[NDArray],          # mus
        ],                                  # = tv_precompute_apply_frame_sweep(frame, ww)  (lean)
) -> NDArray:                               # the scalar apply(v, ww), one per stack element; shape = W + K + C

Forward all-modes apply of a tangent vector reusing a precomputed frame sweep – the bare 𝒥 with the frame edge variables injected. Equivalent to tv_apply(), but it takes the lean (xis, mus) from frame_sweep instead of recomputing them (the reuse hook for fitting.py). Only the variation-dependent dxis is computed here. No gauge projector Π.

Parameters:
  • variation (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • ww (t3toolbox.backend.common.typ.Sequence[NDArray])

  • frame (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]])

  • frame_sweep (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

Return type:

NDArray