pub struct QuadRowScale {
pub index: usize,
pub name: String,
pub curvature: Number,
pub linear: Number,
pub rhs: Number,
pub jac_at_x0: Number,
pub scale: Number,
pub mismatch: Number,
}Expand description
The coefficient magnitudes of one quadratic constraint row, read off
the .nl without reference to any point, paired with what the
gradient sample at x0 made of it.
curvature is ‖Q‖_∞ (the largest absolute row sum of the row’s
Hessian), which is Gershgorin’s bound on λ_max(Q) and is the exact
quantity §8’s second-stage row scale eᵢ = 1/max(‖Qᵢ‖_∞, ‖aᵢ‖_∞, |bᵢ|)
is built from. It is an upper bound on the curvature, not the curvature.
Fields§
§index: usize§name: String§curvature: Number‖Q‖_∞ — see the type docs.
linear: Number‖a‖_∞ over the .nl linear section plus the degree-1 terms the
writer folded into the nonlinear tree.
rhs: Number|b| — the finite bound the row is written against, shifted by the
folded constant. A range row reports the larger magnitude.
jac_at_x0: Number‖∇g(x0)‖_∞ — what gradient-based scaling actually samples.
scale: NumberThe factor that sample assigns the row.
mismatch: Numberrhs / curvature. §8’s statistic: the qcqp1500-1c right-hand
sides are 1.58e5–1.80e5 against λ_max(Qᵢ) ≈ 1.6e3, a 100×
mismatch that biases sᵢ = −gᵢ(x) and hence the −sᵢ/λᵢ KKT
diagonal. Zero when the curvature is zero.
Trait Implementations§
Source§impl Clone for QuadRowScale
impl Clone for QuadRowScale
Source§fn clone(&self) -> QuadRowScale
fn clone(&self) -> QuadRowScale
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for QuadRowScale
impl RefUnwindSafe for QuadRowScale
impl Send for QuadRowScale
impl Sync for QuadRowScale
impl Unpin for QuadRowScale
impl UnsafeUnpin for QuadRowScale
impl UnwindSafe for QuadRowScale
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more