t3_entries_ambient_transpose ============================ .. py:function:: t3toolbox.backend.entries.t3_entries_ambient_transpose(c, index, shape, sum_over_probes = False) .. code-block:: python 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 :py:func:`t3_entries`: scatter ``c`` at ``index`` into CP factors. The ``entries`` counterpart of :py:func:`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).