ufv_shared_frame_data#

t3toolbox.backend.sharing.ufv_shared_frame_data(frame_data, groups)#
def ufv_shared_frame_data(
        frame_data,  # UT3Frame .data: (up_sc, down_sc, left_sc, right_sc, shape, (4 masks)); stack = C
        groups:     typ.Tuple[typ.Tuple[int, ...], ...],  # static; canonical partition (validate_sharing)
) -> 'SharedFrameData':

The uniform twin of fv_shared_frame_data(): the IDENTICAL polymorphic derivation (the centers H_i = L_i Z_{i+1} from the zipper of the stored chains, S_i^T = <O_i, H_i> batched over the mode axis, one batched thin SVD per group of the statically-gathered concatenation) on the frame’s MASKED supercores.

Masked first: the zipper contracts the left chain against the right chain over bonds and modes, and the padded slots hold the construction’s arbitrary orthonormal completions, which must not pair up. (Until 2026-08-22 the centers came from RE-SWEEPING the stored left supercore with fresh SVDs, which had to see the arrays AS STORED to reproduce the construction’s sign choices; the constraint, and the ‘frames packed from ragged are not guaranteed’ caveat, went with it – review S9.) The padded rows of each S_i^T vanish to roundoff (completion rows are orthogonal to the center’s row space), so every consumer stays padding-transparent.

Container reuse: the returned SharedFrameData holds SUPERCORE SLICES at the padded dims (frame stack C leading; row_splits are multiples of the padded nD).

Parameters:

groups (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, ...], ...])

Return type:

SharedFrameData