tv_unstack_frame_stack#

t3toolbox.backend.tv_operations.tv_unstack_frame_stack(frame, variations)#
def tv_unstack_frame_stack(
        frame,       # (UU, DD, LL, RR), each core stack = G
        variations,  # (VV, HH), each core stack = V + G
):  # -> array-like tree (shape G) of (frame_data, variations_data) pairs

Peel the frame stack G off both the frame and the variations, returning a G-shaped tree whose leaves are (frame_data, variations_data) pairs – one single-base-point tangent per leaf.

Each frame-data leaf has stack () (a single base point); each variations-data leaf has stack V. The frame stack is the inner part of the variation stack (V + G), so it is peeled from the interior axes of the variation cores. The frame and variation leaves are paired for you (a plain stacking.tree_zip() cannot do it – it would recurse into the data-tuple leaves – so a backend user would otherwise have to hand-roll a depth-aware zip). Inverse of tv_stack_frame_stack().