tv_unstack_frame_stack ====================== .. py:function:: t3toolbox.backend.tv_operations.tv_unstack_frame_stack(frame, variations) .. code-block:: python 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 :py:func:`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 :py:func:`tv_stack_frame_stack`.