tv_entries_transpose_from_sweep#

t3toolbox.backend.entries.tv_entries_transpose_from_sweep(c, index, frame, frame_sweep, sum_over_probes=False)#
def tv_entries_transpose_from_sweep(
        c:          NDArray,                # residual, shape = W + C (or W + K + C)
        index:      NDArray,                # int, shape=(d,)+W -- the indices c weights (-> one-hot vectors)
        frame:       typ.Tuple[
            typ.Sequence[NDArray], typ.Sequence[NDArray],
            typ.Sequence[NDArray], typ.Sequence[NDArray],
        ],                                  # = T3Frame.data = (U, O, P, Q); uses U (one-hot), O, Q
        frame_sweep: typ.Tuple[
            typ.Sequence[NDArray], typ.Sequence[NDArray],
        ],                                  # = tv_precompute_entries_frame_sweep(frame, index)  (lean: no nu/eta)
        sum_over_probes: bool = False,
) -> typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]]:  # (dU_tildes, dG_tildes) = T3Variations.data

Transpose of the all-modes entries reusing a precomputed frame sweep – the bare 𝒥ᵀ (entries), by the adjoint-state method (see _apply_transpose_adjoint()). Takes the lean (xis, mus) sweep (the reuse hook for fitting.py). Identical to tv_apply_transpose_from_sweep() with the one-hot vectors e_{index} as the apply vectors. Full W + K + C; no gauge projector Π.

Parameters:
  • c (NDArray)

  • index (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]])

  • frame_sweep (t3toolbox.backend.common.typ.Tuple[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]]