compute_raw_sweep_ranks ======================= .. py:function:: t3toolbox.backend.ranks.compute_raw_sweep_ranks(shape, tucker_ranks, tt_ranks, cap_tucker_ranks, cap_tt_ranks, use_jax = False) .. code-block:: python def compute_raw_sweep_ranks( shape: typ.Sequence[int], # (N0, ..., N(d-1)) tucker_ranks, # current Tucker ranks: seq (n0,...) or array (d,)+stack tt_ranks, # current TT ranks: seq (r0,...) or array (d+1,)+stack cap_tucker_ranks, # min(current, max) Tucker ranks, same form as tucker_ranks cap_tt_ranks, # min(current, max) TT ranks, same form as tt_ranks use_jax: bool = False, ) -> typ.Tuple: # (raw_tucker_ranks, raw_tt_ranks), same form as inputs Ranks the T3-SVD sweep produces under hard rank caps -- i.e. the ranks ``t3svd`` returns (it does not minimize; see :py:func:`rank_adjustment_sweep`). The sweep is down-orthogonalize, right-orthogonalize, then a left-to-right pass that caps each Tucker/TT edge: at each mode the SVD keeps ``min(structural rank, cap)``, so a downstream cap can leave an upstream rank above the structural minimum (non-minimal -- see :py:func:`compute_minimal_ranks`). The caps enter the forward pass via the pre-capped ranks. (Used by uniform ``ut3svd`` to shrink the padded supercore to the actual content ranks.)