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: