Skip to main content

Solver

Struct Solver 

Source
pub struct Solver { /* private fields */ }
Expand description

Structure-exploiting convex QP solver.

Implementations§

Source§

impl Solver

Source

pub const fn new(settings: SolverSettings) -> Self

Creates a solver with explicit settings.

Source

pub const fn settings(&self) -> &SolverSettings

Returns the active settings.

Source

pub fn solve( &self, problem: &QpProblem, warm_start: Option<&WarmStart>, ) -> Result<Solution, SolverError>

Solves a convex factor-model QP.

When SolverSettings::scaling_iterations is positive, ADMM iterates on a Ruiz-equilibrated copy of the data; termination checks and every value on the returned Solution are evaluated on the original data.

Each call pays equilibration and factorization setup again. For rolling sequences over a fixed structure, build a Workspace with Solver::workspace instead.

§Errors

Returns SolverError when the input, settings, warm start, factor covariance, or reduced linear system is invalid.

Source

pub fn workspace(&self, problem: &QpProblem) -> Result<Workspace, SolverError>

Builds a reusable Workspace that caches the equilibration and the SMW-reduced factorization across solves (roadmap 2.4).

Use it when the problem structure — covariance, constraint matrices, bounds — is fixed and only the linear cost or right-hand sides change between solves, as in rolling rebalances.

§Errors

Returns SolverError when the input, settings, factor covariance, or reduced linear system is invalid.

Trait Implementations§

Source§

impl Clone for Solver

Source§

fn clone(&self) -> Solver

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl ComparisonSolver for Solver

Source§

fn name(&self) -> &'static str

Stable label used in reports.
Source§

fn solve( &mut self, problem: &QpProblem, warm_start: Option<&WarmStart>, ) -> Result<Solution, String>

Solves one problem, optionally from a common primal warm start. Read more
Source§

impl Debug for Solver

Source§

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

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

impl Default for Solver

Source§

fn default() -> Solver

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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.