pub const ROW_NOISE_KAPPA: Number = 64.0;Expand description
Safety factor on the per-row noise floor of
IpoptCalculatedQuantities::row_noise_floor. The floor prices one
component of x at eps · ‖x‖_∞ and passes it through the row at
max_j |a_ij|; the row’s residual accumulates that over all of its
nonzeros, and the linear solve’s conditioning widens it further, so the
bare product is short by a problem-dependent factor. 64 covers a typical
sparse row without reaching far enough to swallow a declared magnitude a
model could have meant: at the ‖x‖_∞ ~ 1 of a well-posed problem the
floor sits near
1.4e-14, still nine orders under constr_viol_tol’s default. Rows it
silences fall back on the absolute feasibility test, which is already
scale-invariant on a row whose declared magnitude is numerically zero.
Measured, and not a knife edge: over gh #446’s 15 problems plus the
infeasibility-detection suites (false_local_infeasibility,
infeasible_status_tol_invariance, issue_390_nonlinear_equality_scale),
every value from 8 to 1024 gives the same verdicts. 1 is too small —
QSCSD1’s rows are wide enough that the missing nonzero-count factor still
leaves its 2^-53 RHS above the bound — so 64 sits an order of magnitude
inside the band from either edge.