compute_raw_sweep_ranks#
- t3toolbox.backend.ranks.compute_raw_sweep_ranks(shape, tucker_ranks, tt_ranks, cap_tucker_ranks, cap_tt_ranks, use_jax=False)#
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
t3svdreturns (it does not minimize; seerank_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 keepsmin(structural rank, cap), so a downstream cap can leave an upstream rank above the structural minimum (non-minimal – seecompute_minimal_ranks()). The caps enter the forward pass via the pre-capped ranks. (Used by uniformut3svdto shrink the padded supercore to the actual content ranks.)- Parameters:
shape (t3toolbox.backend.common.typ.Sequence[int])
use_jax (bool)
- Return type:
t3toolbox.backend.common.typ.Tuple