utv_stack_frame_stack ===================== .. py:function:: t3toolbox.backend.utv_operations.utv_stack_frame_stack(paired_tree) .. code-block:: python def utv_stack_frame_stack( paired_tree, # array-like tree (shape C) of (frame_data, variations_data) pairs ): # -> (frame_data [stack C], variations_data [stack K + C]) Stack a ``C``-shaped tree of ``(frame_data, variations_data)`` pairs over the frame stack ``C``. The frame stack is placed *innermost* (the variation stack becomes ``K + C``), matching the base-inner convention. Frames of DIFFERENT ranks stack into one batch (varying-``C`` -- the per-element masks just ride along); the shared requirement is only matching padded dims and tangent stack ``K``. Takes exactly the layout :py:func:`utv_unstack_frame_stack` produces (its inverse).