Skip to main content

SensBacksolver

Trait SensBacksolver 

Source
pub trait SensBacksolver {
    // Required methods
    fn dim(&self) -> usize;
    fn solve(&self, rhs: &[Number], lhs: &mut [Number]) -> bool;
}
Expand description

Solve K · lhs = rhs against the converged KKT factor. Returns false on failure (e.g. backend reports Singular).

Mirrors Ipopt::SensBacksolver::Solve (SensBacksolver.hpp:28-31). Pounce takes flat &[Number] / &mut [Number] rather than upstream’s block-structured IteratesVector because the sensitivity-side data is naturally flat; if the algorithm-side wrapper in Phase B.2 needs the block layout it converts before calling.

Required Methods§

Source

fn dim(&self) -> usize

Size of the linear system in entries (length of lhs and rhs). The backsolver’s notion of “full state” — pounce’s IPM uses the compound (x, s, λ_c, λ_d, z_l, z_u, v_l, v_u) concatenation here.

Source

fn solve(&self, rhs: &[Number], lhs: &mut [Number]) -> bool

Solve K · lhs = rhs. The implementation may use rhs as scratch; callers should treat it as moved-from on return. lhs must have length self.dim().

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§