utv_weighted_inner#
- t3toolbox.backend.utv_operations.utv_weighted_inner(variations_a, variations_b, weights, n_stack)#
def utv_weighted_inner( variations_a: typ.Tuple, # UT3Variations .data of A, stack = K + C variations_b: typ.Tuple, # UT3Variations .data of B, stack = K + C (same frame as A) weights: typ.Tuple, # ONE metric: UT3FrameWeights .data, stack = C n_stack: int, # leading K+C stack axes to keep; 0 -> a single scalar ) -> NDArray: # weighted coordinate inner product, shape = stack_shape[:n_stack]
Weighted coordinate inner product
<absorb(W, A), absorb(W, B)>w.r.t. one metric – absorb into both tangents’ variations and dot. Uniform twin offv_weighted_inner. The caller checks same-frame; the frontend also checks the metric against the frame.- Parameters:
variations_a (t3toolbox.backend.common.typ.Tuple)
variations_b (t3toolbox.backend.common.typ.Tuple)
weights (t3toolbox.backend.common.typ.Tuple)
n_stack (int)
- Return type: