Skip to main content

SqpProblemSpec

Trait SqpProblemSpec 

Source
pub trait SqpProblemSpec {
    // Required methods
    fn n(&self) -> usize;
    fn m(&self) -> usize;
    fn x_init(&self) -> Vec<Number> ;
    fn variable_bounds(&self) -> (Vec<Number>, Vec<Number>);
    fn constraint_bounds(&self) -> (Vec<Number>, Vec<Number>);
    fn eval_f(&mut self, x: &[Number]) -> Number;
    fn eval_grad_f(&mut self, x: &[Number]) -> Vec<Number> ;
    fn eval_c(&mut self, x: &[Number]) -> Vec<Number> ;
    fn eval_jac_c(&mut self, x: &[Number]) -> Triplet;
    fn eval_hess_lag(&mut self, x: &[Number], lambda_g: &[Number]) -> Triplet;
}

Required Methods§

Source

fn n(&self) -> usize

Source

fn m(&self) -> usize

Source

fn x_init(&self) -> Vec<Number>

Source

fn variable_bounds(&self) -> (Vec<Number>, Vec<Number>)

Source

fn constraint_bounds(&self) -> (Vec<Number>, Vec<Number>)

Source

fn eval_f(&mut self, x: &[Number]) -> Number

Source

fn eval_grad_f(&mut self, x: &[Number]) -> Vec<Number>

Source

fn eval_c(&mut self, x: &[Number]) -> Vec<Number>

c(x) — combined constraint values (length m). The constraint bounds from constraint_bounds apply directly: row i is a strict equality if bl[i] == bu[i], an inequality otherwise.

Source

fn eval_jac_c(&mut self, x: &[Number]) -> Triplet

∇c(x) as a sparse m × n triplet (1-based indices).

Source

fn eval_hess_lag(&mut self, x: &[Number], lambda_g: &[Number]) -> Triplet

∇²L(x, λ_g) = ∇²f(x) + Σ λ_g_i · ∇²c_i(x) as a sparse symmetric n × n triplet.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§