t3_concatenate ============== .. py:function:: t3toolbox.backend.t3_operations.t3_concatenate(xx) .. code-block:: python def t3_concatenate( xx: typ.Sequence[ typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]] ], # T3 data tuples, each (tucker_cores, tt_cores); TT ranks must match at each seam ) -> typ.Tuple[ typ.Tuple[NDArray, ...], # tucker_cores (concatenated over modes) typ.Tuple[NDArray, ...], # tt_cores ]: Concatenate a sequence of T3 segments into one T3 (inverse of :py:func:`t3_segment`). At each seam the TT ranks must match -- the trailing TT rank of one segment equals the leading TT rank of the next -- otherwise a ``ValueError`` is raised. The join is structural (core-tuple concatenation); no re-orthogonalization.