t3_left_orthogonal_norm_sq#
- t3toolbox.backend.geometry.t3_left_orthogonal_norm_sq(x_cores)#
def t3_left_orthogonal_norm_sq( x_cores: typ.Tuple, # (tucker_cores, tt_cores) -- a LEFT-orthogonal T3 (a frame's (U,P), or a retracted point) ) -> NDArray: # ‖X‖²_HS, shape = stack C (a 0-d scalar for C=()); PER-ELEMENT over the stack
‖X‖²_HS = ‖last TT core‖²– exact for a left-orthogonal T3 (the frame’s(U,P)or at3svdretraction output), so no dense tensor and no re-orthogonalization. The left-orthogonal precondition is check-free here (backend) and is the caller’s responsibility: on a raw point the value is simply wrong (measured 3 vs 1400 on arandnpoint – the 2026-08-22 review). UseManifoldGeometryOps.point_norm_sq()for an arbitrary point; verify a point witht3toolbox.backend.t3_orthogonalization.t3_orthogonality_residual(). (docs/contributor/fitting_internals.md§”The base point as a tangent”.)- Parameters:
x_cores (t3toolbox.backend.common.typ.Tuple)
- Return type: