tv_apply_transpose#
- t3toolbox.backend.apply.tv_apply_transpose(c, ww, frame, sum_over_probes=False)#
def tv_apply_transpose( c: NDArray, # residual, shape = W + C (one per probe-set, per base point) ww: typ.Sequence[NDArray], # the apply vectors, len=d, elm_shape=W+(Ni,) frame: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray]], # (up, down, left, right) sum_over_probes: bool = False, ) -> typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]]: # (dU_tildes, dG_tildes) = T3Variations.data
Apply the transpose of
tv_apply()– back-project a residualcinto a tangent.The adjoint of the (linear-in-the-variation) all-modes apply. Needs only the frame sweep (xi-hat, mu-hat, nu-hat, eta-hat) and a single-term scatter assembly (it skips the adjoint perturbation sweep that tv_probe_transpose runs). With
sum_over_probes=Falsethe probe stack W becomes the output tangent stack; withTrueit is summed (theJ^T rback-projection).See also
tv_apply,tv_entries_transpose- Parameters:
c (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]])
sum_over_probes (bool)
- Return type:
t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]]