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 centersH_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^Tvanish to roundoff (completion rows are orthogonal to the center’s row space), so every consumer stays padding-transparent.Container reuse: the returned
SharedFrameDataholds SUPERCORE SLICES at the padded dims (frame stackCleading;row_splitsare multiples of the paddednD).- Parameters:
groups (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, ...], ...])
- Return type: