fv_weighted_inner#
- t3toolbox.backend.fv_operations.fv_weighted_inner(variations_A, variations_B, weights, n_stack)#
def fv_weighted_inner( variations_A: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]], # (V, H) of A variations_B: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]], # (V, H) of B weights: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray], typ.Sequence[NDArray]], # one metric (up, down, left, right) n_stack: int, # leading K+C stack axes kept ) -> NDArray: # weighted inner, shape=stack
Weighted coordinate inner product
<absorb(W,A), absorb(W,B)>w.r.t. one metricweights– the corewise stack-dot of the two weight-absorbed variations. The caller checks same-frame. Backend twin ofT3Tangent.weighted_inner.- Parameters:
variations_A (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])
variations_B (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])
weights (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])
n_stack (int)
- Return type: