tv_apply_transpose_derivatives_from_sweep#
- t3toolbox.backend.sampling_derivatives.tv_apply_transpose_derivatives_from_sweep(c, ww, pp, frame, sweep, order, sum_over_probes=False)#
def tv_apply_transpose_derivatives_from_sweep( c: NDArray, # residual jet (scalar), shape=(order+1)+W+K+C ww: typ.Sequence[NDArray], # probe vectors X, len=d, elm_shape=W+(Ni,) pp: typ.Sequence[NDArray], # perturbation vectors P, len=d, elm_shape=W+(Ni,) frame: typ.Tuple[ typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray], ], # = T3Frame.data = (U, O, P, Q) sweep: typ.Tuple[ typ.Sequence[NDArray], # xi_jets typ.Sequence[NDArray], # mu_jets ], # = tv_precompute_apply_frame_sweep_jets(frame, ww, pp, order) order: int, # highest derivative order sum_over_probes: bool = False, # True: sum the sample stack W (the J^T r back-projection) ) -> typ.Tuple[ typ.Tuple[NDArray, ...], # dU_tildes typ.Tuple[NDArray, ...], # dG_tildes ]: # = T3Variations.data
Variation gradient of
tv_apply_derivatives_transpose()from a precomputed framesweep: thec-seededsigma_hatsweep + the single-term assembly, reusing the frame(xi, mu)_jets(w_jetsis frame-free, recomputed here). The reuse hook for a fitting inner solve.- Parameters:
c (NDArray)
ww (t3toolbox.backend.common.typ.Sequence[NDArray])
pp (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]])
sweep (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])
order (int)
sum_over_probes (bool)
- Return type:
t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[NDArray, Ellipsis]]