pub fn relaxation_slack(
products: &[Number],
product_lambda: &[Number],
) -> NumberExpand description
The objective a relaxed point’s products buy, to first order: Σ |λ_k|· max(p_k, 0) over the product rows, λ_k the row’s multiplier and p_k
its product G_k·H_k. Relaxing row k from 0 to p_k lowers the
minimized objective by λ_k·p_k to first order, so this is how much worse
an exact finish that removes the slack may look without having moved.
Unlike sqrt(max p)·max(1, |f|), which this replaced (gh#1128), it scales
with the objective: multiplying f by c multiplies every λ_k by c,
so a verdict built on it does not change with the objective’s units.
+inf if a multiplier or product is not finite; 0 with no product rows.