tv_precompute_entries_frame_sweep#

t3toolbox.backend.entries.tv_precompute_entries_frame_sweep(frame, index)#
def tv_precompute_entries_frame_sweep(
        frame:   typ.Tuple[
            typ.Sequence[NDArray],          # up_tucker_cores  U. len=d
            typ.Sequence[NDArray],          # down_tt_cores    O. len=d
            typ.Sequence[NDArray],          # left_tt_cores    P. len=d
            typ.Sequence[NDArray],          # right_tt_cores   Q. len=d
        ],                                  # frame order = T3Frame.data = (up, down, left, right)
        index:  NDArray,                    # int, shape=(d,)+W -- the grid points
) -> typ.Tuple[
    typ.Sequence[NDArray],  # xis. len=d, elm_shape=W+C+(nUi,) -- the FIBER-SLICED seed (not contracted)
    typ.Sequence[NDArray],  # mus. len=d, elm_shape=W+C+(rLi,)
]:                                          # lean frame sweep -- (xis, mus) only (entries seed)

The all-modes entries frame sweep (lean): identical to tv_precompute_apply_frame_sweep() but the xi-hat seed comes from slicing the Tucker-core fibers at index (_entry_xis) instead of contracting with probe vectors. Like apply, entries uses the adjoint-state transpose, so only (xis, mus) are needed (no nu/eta). Reused by the entries forward/transpose (the reuse hook for fitting.py).

See also

tv_precompute_apply_frame_sweep, tv_entries_jacobian_from_sweep, tv_entries_transpose_from_sweep

Parameters:
  • 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]])

  • index (NDArray)

Return type:

t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]]