ManifoldGeometry.randn#
- t3toolbox.manifold.ManifoldGeometry.randn(frame, stack_shape=())#
def randn( self, frame: bvf.T3Frame, stack_shape: typ.Tuple[int, ...] = (), # extra tangent stack K (a batch of tangents) ) -> T3Tangent: # gauged random tangent at frame
Random tangent at
frame: a standard Gaussian on the tangent spaceT_xM.Raw i.i.d. N(0, 1) variation cores, then the gauge projection
project()(Pi). For an orthogonalframethis is exactly the standard Gaussian onT_xM– equivalently the orthogonal projection ontoT_xMof the ambient standard normal. Minimal rank is not required: the gauge projection absorbs any rank redundancy, so the draw lands in the true tangent space regardless (verified against the ambient-normal projection on a non-minimal frame).stack_shapeis the extra outer tangent stackK(default()).Inherits
project()’s safe-mode ORTH precondition: a non-orthogonalframeraises (skipped undersafety.unsafe()/ a jax trace, where it yields a merely-gauged – not true Gaussian – tangent).