t3_orthogonal_representations ============================= .. py:function:: t3toolbox.backend.fv_conversions.t3_orthogonal_representations(x, already_left_orthogonal = False, squash_tails = True) .. code-block:: python def t3_orthogonal_representations( x: typ.Union[ typ.Tuple[ typ.Tuple[NDArray,...], # tucker_cores typ.Tuple[NDArray,...], # tt_cores ], # ragged typ.Tuple[ NDArray, # tucker_supercore NDArray, # tt_supercore ], # uniform ], already_left_orthogonal: bool = False, squash_tails: bool = True, ) -> typ.Union[ typ.Tuple[ typ.Tuple[ typ.Tuple[NDArray,...], # up_tucker_cores typ.Tuple[NDArray, ...], # down_tucker_cores typ.Tuple[NDArray,...], # left_tt_cores typ.Tuple[NDArray,...], # right_tucker_cores ], typ.Tuple[ typ.Tuple[NDArray,...], # tucker_variations typ.Tuple[NDArray,...], # tt_variations ], ], # ragged typ.Tuple[ typ.Tuple[ NDArray, # up_tucker_supercore NDArray, # down_tucker_supercore NDArray, # left_tt_supercore NDArray, # right_tucker_supercore ], typ.Tuple[ NDArray, # tucker_variations_supercore NDArray, # tt_variations_supercore ], ], # uniform ]: Construct frame-variation representations of TuckerTensorTrain with orthogonal frame. Sweeping orthogonalization (Algorithm 11) producing the representations (45)-(46), Appendix A.3, of Alger et al. (2026), "Tucker Tensor Train Taylor Series" (arXiv:2603.21141). NOTE: the left/right sweep order here differs from Algorithm 11 (left-then-right vs the paper's right-then-left); the resulting orthogonal representations are equivalent.