ManifoldGeometry.project ======================== .. py:method:: t3toolbox.manifold.ManifoldGeometry.project(v) .. code-block:: python def project( self, v: T3Tangent, ) -> T3Tangent: # gauged tangent at v's frame (a DIFFERENT vector) The gauge projection ``Pi``: raw cotangent -> Riemannian gradient (orthogonal gauge). Orthogonally projects ``v``'s variations onto the gauged tangent space (the gauge conditions (48)-(49), Appendix A.3). Represents a DIFFERENT tangent vector than ``v``. This is the map that turns a bare adjoint ``J^T r`` into the Riemannian gradient. For the vector-preserving gauge fix see :py:meth:`project_oblique`. **Safe mode** requires ``v``'s frame to be **orthogonal** (the precondition for this to be the orthogonal-gauge projection ``Pi``); it raises otherwise. Skipped under ``safety.unsafe()`` / a jax trace.