t3_probe_corewise_transpose =========================== .. py:function:: t3toolbox.backend.probing.t3_probe_corewise_transpose(ztildes, ww, core_pair, sum_over_probes = False) .. code-block:: python def t3_probe_corewise_transpose( ztildes: typ.Sequence[NDArray], # probe residuals, len=d, elm_shape=W+C+(Ni,) ww: typ.Sequence[NDArray], # probe vectors, len=d, elm_shape=W+(Ni,) core_pair: typ.Tuple[ typ.Sequence[NDArray], # tucker_cores, len=d, elm_shape=C+(ni,Ni) typ.Sequence[NDArray], # tt_cores, len=d, elm_shape=C+(ri,ni,r(i+1)) ], sum_over_probes: bool = False, # True: sum the probe stack W (the gradient J^T r) ) -> typ.Tuple[ typ.Tuple[NDArray, ...], # tucker-core gradients, same shapes as tucker_cores typ.Tuple[NDArray, ...], # tt-core gradients, same shapes as tt_cores ]: Corewise (non-manifold) transpose of :py:func:`t3_probe`: gradient of the probes w.r.t. the cores of the frame ``core_pair``, treated as independent variables. The probe analog of :py:func:`t3_apply_corewise_transpose` -- the Section 6.3 substitution ``P, Q, O -> G_i`` (``U`` non-orthogonal) into :py:func:`tv_probe_transpose`, i.e. that transpose at frame ``(U, G, G, G)``. Returns gradients shaped exactly like ``(tucker_cores, tt_cores)`` (a gradient, not a tensor; no ``|W|`` blow-up). For non-manifold optimizers (Adam, L-BFGS) fitting from probes. ``sum_over_probes=True`` sums the probe stack ``W`` (the gradient ``J^T r``); ``False`` keeps it. Math reference: Section 6.3, Alger et al. (2026) (arXiv:2603.21141).