UniformTuckerTensorTrain.t3svd#
- t3toolbox.uniform_tucker_tensor_train.UniformTuckerTensorTrain.t3svd(max_tt_ranks=None, max_tucker_ranks=None, assume_orthogonal=False, sharing=None)#
def t3svd(self, max_tt_ranks=None, max_tucker_ranks=None, assume_orthogonal=False, sharing: typ.Sequence = None):
Mask-truncated T3-SVD – the basic algorithm, matching ragged
TuckerTensorTrain.t3svd()on real parts. Always left-orthogonal; under truncation not necessarily minimal (userank_adjustment_sweep()to minimize).assume_orthogonal=Trueskips the orthogonalization, asserting the input is already right-orthogonal (verify withis_right_orthogonal()– not checked). Uniform truncates by max rank only – unlike raggedt3svdthere is nortol/atol(a tolerance would make the output shape data-dependent, which the uniform layer forbids; seedocs/uniform_ranks_and_varieties.md). Per-stack-elementmax_*_ranksarrays are allowed. Returns(new UT3, Tucker svals, TT svals).sharing(one hashable group label per mode) is the grouped SF-T3 truncation, matching the raggedt3svd(sharing=)on real parts: one shared basis per group (one rank mask at every group mode), the group spectrums_greported at every group mode. The factors must already be tied within groups (safe mode checks; seehas_shared_tucker_factors()).- Parameters:
sharing (Sequence)