edge_condition_numbers ====================== .. py:function:: t3toolbox.backend.ranks.edge_condition_numbers(tucker_singular_values, tt_singular_values) .. code-block:: python def edge_condition_numbers( tucker_singular_values: typ.Sequence[NDArray], # len=d, elm_shape=(n_i,), descending tt_singular_values: typ.Sequence[NDArray], # len=d+1, elm_shape=(r_i,), descending ) -> typ.Tuple[ typ.Tuple[float, ...], # len=d, Tucker edge condition numbers (kappa^Tucker) typ.Tuple[float, ...], # len=d+1, TT edge condition numbers (kappa^TT); length-1 boundary bonds = 1.0 ]: Edge condition numbers ``kappa_i = sigma_{i,1} / sigma_{i,r_i}`` of the matrix unfoldings. Section 5.4.1 of Alger et al. (2026), "Tucker Tensor Train Taylor Series" (arXiv:2603.21141): the ratio of the largest to the smallest *retained* singular value on each Tucker matricization and each TT unfolding, as returned by the implicit T3-SVD (:py:meth:`TuckerTensorTrain.t3svd`). The two length-1 boundary TT bonds give ``1.0``. Degenerate-edge conventions keep the value defined on any iterate (including the zero tensor): an all-zero edge -> ``1.0``; a rank-deficient edge -> ``+inf``.