tt_left_orthogonalize#
- t3toolbox.backend.tt_orthogonalization.tt_left_orthogonalize(tt_cores, return_variation_cores=False, pad_masks=None)#
def tt_left_orthogonalize( tt_cores: typ.Union[ typ.Sequence[NDArray], # ragged. len=d, elm_shape=stack_shape+(ri,ni,r(i+1)) NDArray, # uniform. shape=(d,)+stack_shape+(r,n,r) ], return_variation_cores: bool = False, pad_masks: typ.Optional[typ.Tuple[NDArray, NDArray, NDArray]] = None, # uniform only. Per-step HOST masks (rows, cols, outs), each stacked (d-1,)+stack+(...), # from ut3_orthogonalization._tt_left_sweep_pad_masks -> the sweep SVDs are pad-safe. ) -> typ.Union[ typ.Tuple[NDArray,...], # left_tt_cores typ.Tuple[typ.Tuple[NDArray,...], typ.Tuple[NDArray,...]], # left_tt_cores, var_tt_cores ]:
Left-orthogonalize a Tensor train (no Tucker).
pad_masks(uniform only): run each step’s SVD throughpad_safe_svd()with the given per-step masks, so sigma~0 completion columns stay off the padded slots (review S1b) and the output chain is bitwise-clean.