t3_weighted_inner#

t3toolbox.backend.t3_linalg.t3_weighted_inner(x0_A, weights_A, x0_B, weights_B, use_orthogonalization=True)#
def t3_weighted_inner(
        x0_A:      typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]],  # (tucker_cores, tt_cores) of A
        weights_A: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]],  # weights of A
        x0_B:      typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]],  # (tucker_cores, tt_cores) of B
        weights_B: typ.Tuple[typ.Sequence[NDArray], typ.Sequence[NDArray]],  # weights of B
        use_orthogonalization: bool = True,                                  # for numerical stability
) -> NDArray:                                                                # weighted HS inner, shape=stack_shape

Weighted Hilbert-Schmidt inner product <absorb(A), absorb(B)> of two weighted Tucker tensor trains. A and B must share physical shape (same ambient space); ranks/weights may differ.

Parameters:
  • x0_A (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • weights_A (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • x0_B (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • weights_B (t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Sequence[NDArray], t3toolbox.backend.common.typ.Sequence[NDArray]])

  • use_orthogonalization (bool)

Return type:

NDArray