tv_precompute_entries_frame_sweep_jets#

t3toolbox.backend.sampling_derivatives.tv_precompute_entries_frame_sweep_jets(frame, index, pp, order)#
def tv_precompute_entries_frame_sweep_jets(
        frame:   typ.Tuple[
            typ.Sequence[NDArray], typ.Sequence[NDArray],
            typ.Sequence[NDArray], typ.Sequence[NDArray],
        ],                                      # = T3Frame.data = (U, O, P, Q)
        index:  NDArray,                        # int, shape=(d,)+W -- the grid points
        pp:     typ.Sequence[NDArray],          # perturbation vectors P, len=d, elm_shape=W+(Ni,)
        order:  int,                            # highest derivative order
) -> typ.Tuple[
    typ.Sequence[NDArray],  # xi_jets. len=d, elm_shape=(2,)+W+C+(nUi,)
    typ.Sequence[NDArray],  # mu_jets. len=d, elm_shape=(order+1,)+W+C+(rLi,)
]:                                              # lean frame sweep -- (xi, mu) only

The entries-derivative frame sweep (lean): like tv_precompute_apply_frame_sweep_jets() but the up-index jet is formed by fiber-slicing the Tucker cores at index (order 0) + contracting P (order 1), so the variation gradient scatters onto the indexed rows. Also (xi, mu) only.

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)

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

  • order (int)

Return type:

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