compute_sigma_hat#

t3toolbox.backend.probing.compute_sigma_hat(right_tt_cores, xis, c)#
def compute_sigma_hat(
        right_tt_cores: typ.Sequence[NDArray],  # Q.  len=d, elm_shape=C+(rRi,nUi,rR(i+1))
        xis:            typ.Sequence[NDArray],  # frame up-index edge vars, len=d, elm_shape=W+C+(nUi,)
        c:              NDArray,                # residual (scalar), shape=W+K+C
) -> typ.Sequence[NDArray]:                     # sigma_hats. len=d, elm_shape=W+K+C+(rR(i+1),)

Propagation-only adjoint reverse sweep via Q, seeded at the terminal bond by the residual c – the order-0 (non-jet) analog of t3toolbox.backend.sampling_derivatives.compute_sigma_hat_jets().

The right context the apply/entries transpose needs, recomputed from c rather than stored: this is the low-memory half of the adjoint-state method (no nu/eta precomputed). sigma_hats[i] is the adjoint of the after-core-i carry; it carries the tangent stack K (from c). Right-to-left via tt_reverse (mirroring the forward nu sweep’s reversal).

Parameters:
  • right_tt_cores (t3toolbox.backend.common.typ.Sequence[NDArray])

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

  • c (NDArray)

Return type:

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