pub enum ConSocpMap {
Eq {
a_row: usize,
},
Ineq {
upper: Option<usize>,
lower: Option<usize>,
},
Quad {
z_row0: usize,
z_row1: usize,
},
}Expand description
Where each .nl constraint landed in the standard-form conic program,
so the cone multipliers can be mapped back to a per-.nl-constraint dual.
One entry per original constraint, in order. (Analogue of ConRowMap for
the SOCP path produced by extract_socp_with_map.)
Variants§
Eq
Linear equality → row a_row of A (multiplier y[a_row]).
Ineq
Linear inequality / range → up to two rows of the nonnegative G
block (row ≤ g_u and/or −row ≤ −g_l), multipliers z[..] ≥ 0.
Quad
Convex quadratic inequality g(x) ≤ g_u, reformulated to one
second-order cone. The first two cone rows both carry the linear
coefficient vector a = ∇(linear part), so the original constraint
multiplier is recovered as z[r0] + z[r1] (see
recover_socp_duals).
Trait Implementations§
Source§impl Clone for ConSocpMap
impl Clone for ConSocpMap
Source§fn clone(&self) -> ConSocpMap
fn clone(&self) -> ConSocpMap
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ConSocpMap
impl RefUnwindSafe for ConSocpMap
impl Send for ConSocpMap
impl Sync for ConSocpMap
impl Unpin for ConSocpMap
impl UnsafeUnpin for ConSocpMap
impl UnwindSafe for ConSocpMap
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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