T3Tangent.entries_derivatives ============================= .. py:method:: t3toolbox.manifold.T3Tangent.entries_derivatives(index, pp, order) .. code-block:: python def entries_derivatives( self, index: NDArray, # int, shape=(d,)+W -- grid points pp: typ.Sequence[NDArray], # perturbation vectors P, len=d, elm_shape=W+(Ni,) order: int, # highest derivative order ) -> NDArray: # shape=(order+1,)+W+K+C Symmetric directional derivatives of this tangent's entries at ``index``, in direction ``P``. The Taylor data of the tangent's multilinear extension at grid corner ``index``, in direction ``P``: ``y^(t) = d^t/ds^t apply(e_{index} + s P)|_0`` for ``t=0..order``. Index ``0`` is the ordinary :py:meth:`entries`. Stacks ``order + W + K + C``. ``index`` and ``P`` share ``W``. .. seealso:: :py:obj:`entries`, :py:obj:`apply_derivatives`, :py:obj:`entries_derivatives_transpose` .. rubric:: Examples >>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.frame_variations_format as bvf >>> import t3toolbox.manifold as t3m >>> np.random.seed(0) >>> x = t3.TuckerTensorTrain.randn((10, 11, 12), (5, 6, 4), (1, 2, 3, 1)) >>> frame, variations = bvf.t3_orthogonal_representations(x) >>> v = t3m.T3Tangent(frame, variations) >>> index = np.array([3, 5, 7]) >>> pp = (np.random.randn(10), np.random.randn(11), np.random.randn(12)) >>> yj = v.entries_derivatives(index, pp, 3) >>> print(yj.shape) (4,) >>> print(bool(np.allclose(yj[0], v.entries(index)))) # order 0 == entries True