UniformManifoldGeometryOps ========================== .. toctree:: :hidden: /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.from_point /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.with_sharing /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.frame /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.stack_shape /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.base_point /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.precompute /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.project /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.retract /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.inner /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.point_norm_sq /autoapi/t3toolbox/backend/geometry/UniformManifoldGeometryOps.point_tangent .. py:class:: t3toolbox.backend.geometry.UniformManifoldGeometryOps Bases: :py:obj:`t3toolbox.backend.common.ValueHashedFields` The uniform **manifold** geometry at a fixed rank -- the raw-supercore twin of :py:data:`t3toolbox.uniform_manifold.UNIFORM_MANIFOLD`. The uniform layer's optimizer state is a bare ``(tucker_supercore, tt_supercore)`` pair, so the rank structure the operations need -- the mode ``shape``, the plain-UT3 ``masks``, and the variation ``var_masks`` -- lives here instead, loop-invariant and value-hashed (``docs/uniform_backend_jit_recipe.md``: hold the masks as state, trace only the supercores). Build it from the point you are about to optimize with :py:meth:`from_point`. The uniform layer requires a **minimal-rank** start (:py:func:`~t3toolbox.backend.uniform_fitting.uniform_minimal`): from a non-minimal frame the retraction truncates to the realizable rank, which no longer matches the fixed masks held here. .. py:attribute:: shape :type: t3toolbox.backend.common.typ.Tuple[int, ...] .. py:attribute:: masks :type: t3toolbox.backend.common.typ.Tuple .. py:attribute:: var_masks :type: t3toolbox.backend.common.typ.Tuple .. py:attribute:: groups :type: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, ...], ...] :value: () .. py:property:: n_stack :type: int ``|C|``, the frame stack rank (0 for a single tensor). The tucker edge mask is ``(d,) + C + (n,)``, so the stack is everything between. Methods ------- .. autoapisummary:: t3toolbox.backend.geometry.UniformManifoldGeometryOps.from_point t3toolbox.backend.geometry.UniformManifoldGeometryOps.with_sharing t3toolbox.backend.geometry.UniformManifoldGeometryOps.frame t3toolbox.backend.geometry.UniformManifoldGeometryOps.stack_shape t3toolbox.backend.geometry.UniformManifoldGeometryOps.base_point t3toolbox.backend.geometry.UniformManifoldGeometryOps.precompute t3toolbox.backend.geometry.UniformManifoldGeometryOps.project t3toolbox.backend.geometry.UniformManifoldGeometryOps.retract t3toolbox.backend.geometry.UniformManifoldGeometryOps.inner t3toolbox.backend.geometry.UniformManifoldGeometryOps.point_norm_sq t3toolbox.backend.geometry.UniformManifoldGeometryOps.point_tangent