compute_sigma_hat ================= .. py:function:: t3toolbox.backend.probing.compute_sigma_hat(right_tt_cores, xis, c) .. code-block:: python 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 :py:func:`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).