GaussNewtonModel.gn_hessian#

t3toolbox.fitting.GaussNewtonModel.gn_hessian(p)#
def gn_hessian(self, p: t3m.T3Tangent) -> t3m.T3Tangent:

The Gauss-Newton Hessian action H p = Π 𝒥ᵀ 𝒥 Π p (H = JᵀJ, not the full Hessian), plus the regularizer term H_R p when set.

Projects p (so the caller need not), applies the bare forward then transpose, and projects the result – a tangent at frame. Symmetric. (Corewise: Π is the identity, so H p = 𝒥ᵀ 𝒥 p, which is gauge-singular – fine for first-order methods, needs regularization for Newton.) For the scalar quadratic form pᵀHp alone, prefer the cheaper gn_quadratic().

Parameters:

p (T3Tangent)

Return type:

T3Tangent