t3_entries_ambient_transpose#

t3toolbox.backend.entries.t3_entries_ambient_transpose(c, index, shape, sum_over_probes=False)#
def t3_entries_ambient_transpose(
        c:                  NDArray,                # residual, shape=W+C
        index:              NDArray,                # int, shape=(d,)+W
        shape:              typ.Sequence[int],      # ambient dims (N0,...,N(d-1)) -- to size the one-hots
        sum_over_probes:    bool = False,           # True: W becomes the CP rank (scatter-adds collisions)
) -> typ.Sequence[NDArray]:  # canonical (CP) factors. len=d, ith elm_shape=stack_shape+(R, Ni)

Ambient transpose of t3_entries(): scatter c at index into CP factors.

The entries counterpart of t3_apply_ambient_transpose() – identical with the apply vectors replaced by the unit vectors e_{index_k}, so the CP factors are one-hots and the back-projection is c * e_{idx_0} (x) ... (x) e_{idx_{d-1}}. sum_over_probes=True makes W the CP rank (scatter-adding colliding indices – the J^T r for entry sampling). shape supplies the ambient dims, which (unlike the apply case, where ww carries them) the residual and index alone do not determine. Returns CP factors (see the apply version).

Parameters:
  • c (NDArray)

  • index (NDArray)

  • shape (t3toolbox.backend.common.typ.Sequence[int])

  • sum_over_probes (bool)

Return type:

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