tv_entries_transpose#

t3toolbox.backend.entries.tv_entries_transpose(c, index, frame, sum_over_probes=False)#
def tv_entries_transpose(
        c:          NDArray,                # residual, shape = W + C
        index:      NDArray,                # int, shape=(d,)+W (the indices whose entries c weights)
        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)

Apply the transpose of tv_entries() – scatter a residual c at index into a tangent.

Identical to tv_apply_transpose() with the up-index xi-hat from fiber slicing and the apply vectors replaced by the unit vectors e_{index_k} (so the dU-tilde outer product is the entry scatter).

See also

tv_entries, tv_apply_transpose

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]])

  • sum_over_probes (bool)

Return type:

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