Skip to main content

SolutionView

Struct SolutionView 

Source
pub struct SolutionView<'a> {
    pub objective: f64,
    pub primal: &'a [f64],
    pub dual: &'a [f64],
    pub reduced_costs: &'a [f64],
    pub iterations: u64,
    pub solve_time_seconds: f64,
}
Expand description

Zero-copy view of an LP solution, borrowing directly from solver-internal buffers.

Valid until the next mutating method call on the solver (any &mut self call). This is enforced at compile time by the Rust borrow checker: the lifetime 'a ties the view to the solver instance that produced it.

Use SolutionView::to_owned to convert to an owned LpSolution when the solution data must outlive the current borrow, or when the same data will be accessed after a subsequent solver call.

See Solver Interface Trait SS4.1.

Fields§

§objective: f64

Optimal objective value (minimization sense).

§primal: &'a [f64]

Primal variable values, indexed by column (length equals num_cols).

§dual: &'a [f64]

Dual multipliers (shadow prices), indexed by row (length equals num_rows). Normalized to canonical sign convention.

§reduced_costs: &'a [f64]

Reduced costs, indexed by column (length equals num_cols).

§iterations: u64

Number of simplex iterations performed for this solve.

§solve_time_seconds: f64

Wall-clock solve time in seconds (excluding retry overhead).

Implementations§

Source§

impl SolutionView<'_>

Source

pub fn to_owned(&self) -> LpSolution

Clones the borrowed slices into owned Vecs, producing an LpSolution.

Use this when the solution data must outlive the current solver borrow, or when the same solution will be read after a subsequent solver call.

Trait Implementations§

Source§

impl<'a> Clone for SolutionView<'a>

Source§

fn clone(&self) -> SolutionView<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for SolutionView<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Copy for SolutionView<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for SolutionView<'a>

§

impl<'a> RefUnwindSafe for SolutionView<'a>

§

impl<'a> Send for SolutionView<'a>

§

impl<'a> Sync for SolutionView<'a>

§

impl<'a> Unpin for SolutionView<'a>

§

impl<'a> UnsafeUnpin for SolutionView<'a>

§

impl<'a> UnwindSafe for SolutionView<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.