pub fn gauss_newton_krawczyk_step<S: Scalar, const M: usize>(
x_hat: Vector<S, 2>,
f_hat: Vector<S, M>,
jac_hat: Matrix<S, M, 2>,
x_box: Vector<S, 2>,
jac_box: Matrix<S, M, 2>,
) -> GeopResult<KrawczykStep<S>>Expand description
One Gauss-Newton-Krawczyk contraction of the box x_box = (s_box, t_box)
against F(s, t) ∈ Rᴹ.
x_hat: the evaluation point (sharp midpoint ofx_box).f_hat:F(x̂).jac_hat:J(x̂),M×2— evaluated at the sharp pointx̂(this is what makesJᵀJan ordinary — not interval —2×2system, solvable by plain Gaussian elimination).jac_box:J(X),M×2— the same Jacobian, but evaluated as an enclosure over the whole incoming box (interval arithmetic overx_box, not just the midpoint) — this is what lets the contraction step be rigorous rather than merely a numerical guess.
Errs only when JᵀJ (built from the sharp jac_hat) is singular —
tangential/rank-deficient curves at x̂, Cauchy-Schwarz equality in
|C1'|²|C2'|² = (C1'·C2')² — a fixed, structural signal to the caller
that this system needs deflating (see the module doc comment) rather
than a transient numerical hiccup to retry.