UniformManifoldGeometry.project_ambient#
- t3toolbox.uniform_manifold.UniformManifoldGeometry.project_ambient(frame, grad)#
def project_ambient( self, frame: ubv.UT3Frame, # orthogonal base point of the tangent space grad: ut3.UniformTuckerTensorTrain, # ambient gradient as a uniform Tucker tensor train ) -> UT3Tangent: # the Riemannian gradient (gauged projection of grad) at frame
Project an ambient gradient onto
T_xM– the Riemannian gradient.gradis the Euclidean/ambient gradient as aUniformTuckerTensorTrain. Returns the gauged tangentP_T(grad)(the residualgrad - P_T(grad)is orthogonal to the tangent space). Requires an orthogonalframe(minimal rank not required); enforced in safe mode (skipped undersafety.unsafe()/ a jax trace).Unlike the ragged
project_ambient(), the uniform layer has no native dense-array path (the uniform layer is a performance layer; working dense here defeats its purpose). For a dense gradient, go via the ragged geometry and the cross-layer converters (UT3Frame.to_t3frame()->MANIFOLD.project_ambient->UT3Tangent.from_t3tangent()).- Parameters:
frame (UT3Frame)
grad (UniformTuckerTensorTrain)
- Return type: