utv_sum_tangent_stack#
- t3toolbox.backend.utv_operations.utv_sum_tangent_stack(variations_data, n_tangent, axis=None)#
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 stackCis preserved.The supercores sum via
xnp; the masks OR over the same axes (hostnp). Because aKstack shares one frame, its masks are constant alongK, so the OR is a no-op (the summed tangent carries the frame’s gauge masks) – but it is the correct reduction in general.axisindexes withinK.- Parameters:
n_tangent (int)
axis (t3toolbox.backend.common.typ.Optional[int])