utv_sum_tangent_stack ===================== .. py:function:: t3toolbox.backend.utv_operations.utv_sum_tangent_stack(variations_data, n_tangent, axis = None) .. code-block:: python def utv_sum_tangent_stack( variations_data, # variations .data, supercore stack = K + C n_tangent: int, # |K| axis: typ.Optional[int] = None, # 0-based index WITHIN K (None = the whole tangent stack) ): # -> variations .data with the summed K axes removed (stack = C, or K-with-one-axis-removed) Sum the variations over the tangent stack ``K`` (a batch of tangents at one frame -> their sum; corewise == the tangent sum, by linearity). The frame stack ``C`` is preserved. The supercores sum via ``xnp``; the masks **OR** over the same axes (host ``np``). Because a ``K`` stack shares one frame, its masks are constant along ``K``, so the OR is a no-op (the summed tangent carries the frame's gauge masks) -- but it is the correct reduction in general. ``axis`` indexes within ``K``.