UniformTuckerTensorTrain.t3svd#

t3toolbox.uniform_tucker_tensor_train.UniformTuckerTensorTrain.t3svd(max_tt_ranks=None, max_tucker_ranks=None, assume_orthogonal=False)#
def t3svd(self, max_tt_ranks=None, max_tucker_ranks=None, assume_orthogonal=False):

Mask-truncated T3-SVD – the basic algorithm, matching ragged TuckerTensorTrain.t3svd() on real parts. Always left-orthogonal; under truncation not necessarily minimal (use rank_adjustment_sweep() to minimize). assume_orthogonal=True skips the orthogonalization, asserting the input is already right-orthogonal (verify with is_right_orthogonal() – not checked). Uniform truncates by max rank only – unlike ragged t3svd there is no rtol/atol (a tolerance would make the output shape data-dependent, which the uniform layer forbids; see docs/uniform_ranks_and_varieties.md). Per-stack-element max_*_ranks arrays are allowed. Returns (new UT3, Tucker svals, TT svals).