UT3Tangent ========== .. toctree:: :hidden: /autoapi/t3toolbox/uniform_manifold/UT3Tangent.__post_init__ /autoapi/t3toolbox/uniform_manifold/UT3Tangent.validate /autoapi/t3toolbox/uniform_manifold/UT3Tangent.__repr__ /autoapi/t3toolbox/uniform_manifold/UT3Tangent.d /autoapi/t3toolbox/uniform_manifold/UT3Tangent.shape /autoapi/t3toolbox/uniform_manifold/UT3Tangent.frame_stack_shape /autoapi/t3toolbox/uniform_manifold/UT3Tangent.tangent_stack_shape /autoapi/t3toolbox/uniform_manifold/UT3Tangent.stack_shape /autoapi/t3toolbox/uniform_manifold/UT3Tangent.structure /autoapi/t3toolbox/uniform_manifold/UT3Tangent.data /autoapi/t3toolbox/uniform_manifold/UT3Tangent.to_jax /autoapi/t3toolbox/uniform_manifold/UT3Tangent.to_numpy /autoapi/t3toolbox/uniform_manifold/UT3Tangent.copy /autoapi/t3toolbox/uniform_manifold/UT3Tangent.contains_jax /autoapi/t3toolbox/uniform_manifold/UT3Tangent.__add__ /autoapi/t3toolbox/uniform_manifold/UT3Tangent.__sub__ /autoapi/t3toolbox/uniform_manifold/UT3Tangent.__mul__ /autoapi/t3toolbox/uniform_manifold/UT3Tangent.__neg__ /autoapi/t3toolbox/uniform_manifold/UT3Tangent.corewise_inner /autoapi/t3toolbox/uniform_manifold/UT3Tangent.corewise_norm /autoapi/t3toolbox/uniform_manifold/UT3Tangent.absorb_weights /autoapi/t3toolbox/uniform_manifold/UT3Tangent.weighted_norm /autoapi/t3toolbox/uniform_manifold/UT3Tangent.weighted_inner /autoapi/t3toolbox/uniform_manifold/UT3Tangent.normalized /autoapi/t3toolbox/uniform_manifold/UT3Tangent.allclose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.minimal_ranks /autoapi/t3toolbox/uniform_manifold/UT3Tangent.tangent_space_dimension /autoapi/t3toolbox/uniform_manifold/UT3Tangent.has_minimal_ranks /autoapi/t3toolbox/uniform_manifold/UT3Tangent.has_numerically_minimal_ranks /autoapi/t3toolbox/uniform_manifold/UT3Tangent.is_orthogonal /autoapi/t3toolbox/uniform_manifold/UT3Tangent.gauge_residual /autoapi/t3toolbox/uniform_manifold/UT3Tangent.is_gauged /autoapi/t3toolbox/uniform_manifold/UT3Tangent.to_ut3 /autoapi/t3toolbox/uniform_manifold/UT3Tangent.to_dense /autoapi/t3toolbox/uniform_manifold/UT3Tangent.to_t3tangent /autoapi/t3toolbox/uniform_manifold/UT3Tangent.from_t3tangent /autoapi/t3toolbox/uniform_manifold/UT3Tangent.reverse /autoapi/t3toolbox/uniform_manifold/UT3Tangent.probe /autoapi/t3toolbox/uniform_manifold/UT3Tangent.apply /autoapi/t3toolbox/uniform_manifold/UT3Tangent.entries /autoapi/t3toolbox/uniform_manifold/UT3Tangent.probe_derivatives /autoapi/t3toolbox/uniform_manifold/UT3Tangent.apply_derivatives /autoapi/t3toolbox/uniform_manifold/UT3Tangent.entries_derivatives /autoapi/t3toolbox/uniform_manifold/UT3Tangent.probe_transpose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.apply_transpose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.entries_transpose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.probe_derivatives_transpose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.apply_derivatives_transpose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.entries_derivatives_transpose /autoapi/t3toolbox/uniform_manifold/UT3Tangent.sum_tangents /autoapi/t3toolbox/uniform_manifold/UT3Tangent.zeros /autoapi/t3toolbox/uniform_manifold/UT3Tangent.unit /autoapi/t3toolbox/uniform_manifold/UT3Tangent.zeros_like /autoapi/t3toolbox/uniform_manifold/UT3Tangent.unstack_tangents /autoapi/t3toolbox/uniform_manifold/UT3Tangent.unstack_frame /autoapi/t3toolbox/uniform_manifold/UT3Tangent.stack_tangents /autoapi/t3toolbox/uniform_manifold/UT3Tangent.stack_frame .. py:class:: t3toolbox.uniform_manifold.UT3Tangent Tangent vector to the uniform manifold of fixed-rank Tucker tensor trains (uniform analog of :py:class:`~t3toolbox.manifold.T3Tangent`). A ``UT3Tangent`` bundles a :py:class:`~t3toolbox.uniform_frame_variations_format.UT3Frame` (the frame at the base point where the tangent space is attached) with a :py:class:`~t3toolbox.uniform_frame_variations_format.UT3Variations` (the tangent direction in that frame). The ``K``/``C`` stack split (extra tangent stack ``K`` over the shared frame stack ``C``) is **inferred** from the pair -- the variation stack is ``K + C`` and the frame stack is ``C`` -- never stored (the split-agnostic stacking of increment 2c). Like the ragged class, the metric lives on the *geometry*, not here; this exposes only the **raw coordinate** :py:meth:`corewise_inner` / :py:meth:`corewise_norm` (no Hilbert-Schmidt claim), computed on the **real (masked)** content of the variations. .. rubric:: Examples >>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.uniform_tucker_tensor_train as ut3 >>> import t3toolbox.uniform_frame_variations_format as ubv >>> import t3toolbox.uniform_manifold as ut3m >>> np.random.seed(0) >>> x = t3.TuckerTensorTrain.randn((10, 11, 12), (3, 4, 3), (1, 2, 2, 1)) >>> frame, variations = ubv.ut3_orthogonal_representations(ut3.UniformTuckerTensorTrain.from_t3(x)) >>> v = ut3m.UT3Tangent(frame, variations) >>> print(v.shape, v.stack_shape) (10, 11, 12) () >>> print(bool(v.is_orthogonal())) # frame from ut3_orthogonal_representations is orthogonal True >>> w = 2.0 * v - v # linear algebra stays in the same tangent space >>> print(bool(w.allclose(v))) # (2v - v) == v True .. py:attribute:: frame :type: t3toolbox.uniform_frame_variations_format.UT3Frame .. py:attribute:: variations :type: t3toolbox.uniform_frame_variations_format.UT3Variations .. py:attribute:: __rmul__ Methods ------- .. autoapisummary:: t3toolbox.uniform_manifold.UT3Tangent.__post_init__ t3toolbox.uniform_manifold.UT3Tangent.validate t3toolbox.uniform_manifold.UT3Tangent.__repr__ t3toolbox.uniform_manifold.UT3Tangent.d t3toolbox.uniform_manifold.UT3Tangent.shape t3toolbox.uniform_manifold.UT3Tangent.frame_stack_shape t3toolbox.uniform_manifold.UT3Tangent.tangent_stack_shape t3toolbox.uniform_manifold.UT3Tangent.stack_shape t3toolbox.uniform_manifold.UT3Tangent.structure t3toolbox.uniform_manifold.UT3Tangent.data t3toolbox.uniform_manifold.UT3Tangent.to_jax t3toolbox.uniform_manifold.UT3Tangent.to_numpy t3toolbox.uniform_manifold.UT3Tangent.copy t3toolbox.uniform_manifold.UT3Tangent.contains_jax t3toolbox.uniform_manifold.UT3Tangent.__add__ t3toolbox.uniform_manifold.UT3Tangent.__sub__ t3toolbox.uniform_manifold.UT3Tangent.__mul__ t3toolbox.uniform_manifold.UT3Tangent.__neg__ t3toolbox.uniform_manifold.UT3Tangent.corewise_inner t3toolbox.uniform_manifold.UT3Tangent.corewise_norm t3toolbox.uniform_manifold.UT3Tangent.absorb_weights t3toolbox.uniform_manifold.UT3Tangent.weighted_norm t3toolbox.uniform_manifold.UT3Tangent.weighted_inner t3toolbox.uniform_manifold.UT3Tangent.normalized t3toolbox.uniform_manifold.UT3Tangent.allclose t3toolbox.uniform_manifold.UT3Tangent.minimal_ranks t3toolbox.uniform_manifold.UT3Tangent.tangent_space_dimension t3toolbox.uniform_manifold.UT3Tangent.has_minimal_ranks t3toolbox.uniform_manifold.UT3Tangent.has_numerically_minimal_ranks t3toolbox.uniform_manifold.UT3Tangent.is_orthogonal t3toolbox.uniform_manifold.UT3Tangent.gauge_residual t3toolbox.uniform_manifold.UT3Tangent.is_gauged t3toolbox.uniform_manifold.UT3Tangent.to_ut3 t3toolbox.uniform_manifold.UT3Tangent.to_dense t3toolbox.uniform_manifold.UT3Tangent.to_t3tangent t3toolbox.uniform_manifold.UT3Tangent.from_t3tangent t3toolbox.uniform_manifold.UT3Tangent.reverse t3toolbox.uniform_manifold.UT3Tangent.probe t3toolbox.uniform_manifold.UT3Tangent.apply t3toolbox.uniform_manifold.UT3Tangent.entries t3toolbox.uniform_manifold.UT3Tangent.probe_derivatives t3toolbox.uniform_manifold.UT3Tangent.apply_derivatives t3toolbox.uniform_manifold.UT3Tangent.entries_derivatives t3toolbox.uniform_manifold.UT3Tangent.probe_transpose t3toolbox.uniform_manifold.UT3Tangent.apply_transpose t3toolbox.uniform_manifold.UT3Tangent.entries_transpose t3toolbox.uniform_manifold.UT3Tangent.probe_derivatives_transpose t3toolbox.uniform_manifold.UT3Tangent.apply_derivatives_transpose t3toolbox.uniform_manifold.UT3Tangent.entries_derivatives_transpose t3toolbox.uniform_manifold.UT3Tangent.sum_tangents t3toolbox.uniform_manifold.UT3Tangent.zeros t3toolbox.uniform_manifold.UT3Tangent.unit t3toolbox.uniform_manifold.UT3Tangent.zeros_like t3toolbox.uniform_manifold.UT3Tangent.unstack_tangents t3toolbox.uniform_manifold.UT3Tangent.unstack_frame t3toolbox.uniform_manifold.UT3Tangent.stack_tangents t3toolbox.uniform_manifold.UT3Tangent.stack_frame