ManifoldGeometry.project#

t3toolbox.manifold.ManifoldGeometry.project(v)#
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 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.

Parameters:

v (T3Tangent)

Return type:

T3Tangent