UT3Tangent.apply#

t3toolbox.uniform_manifold.UT3Tangent.apply(ww)#
def apply(
        self,
        ww:  typ.Sequence[NDArray],  # apply vectors, len=d, ith elm_shape=W+(Ni,)
) -> NDArray:                        # scalar apply, shape=W+K+C

Apply this tangent vector in all modes (the all-modes special case of probe(); a scalar per stack element, stacked W+K+C). The bare 𝒥. Uniform mirror of apply().

Examples

>>> import numpy as np
>>> import t3toolbox.tucker_tensor_train as t3
>>> import t3toolbox.uniform_tucker_tensor_train as ut3
>>> import t3toolbox.uniform_manifold as ut3m
>>> np.random.seed(0)
>>> x = ut3.UniformTuckerTensorTrain.from_t3(t3.TuckerTensorTrain.randn((10, 11, 12), (5, 6, 4), (1, 2, 3, 1)))
>>> v = ut3m.UNIFORM_COREWISE.randn(ut3m.UNIFORM_MANIFOLD.frame(x))
>>> ww = (np.random.randn(10), np.random.randn(11), np.random.randn(12))
>>> print(bool(abs(float(v.apply(ww)) - float(np.einsum('ijk,i,j,k->', v.to_dense(), *ww))) < 1e-9))
True
Parameters:

ww (t3toolbox.backend.common.typ.Sequence[NDArray])

Return type:

NDArray