Skip to main content

CountingTnlp

Struct CountingTnlp 

Source
pub struct CountingTnlp {
    pub n_obj: Cell<i32>,
    pub n_grad_f: Cell<i32>,
    pub n_g: Cell<i32>,
    pub n_jac_g: Cell<i32>,
    pub n_h: Cell<i32>,
    /* private fields */
}

Fields§

§n_obj: Cell<i32>§n_grad_f: Cell<i32>§n_g: Cell<i32>§n_jac_g: Cell<i32>§n_h: Cell<i32>

Implementations§

Source§

impl CountingTnlp

Source

pub fn new(inner: Rc<RefCell<dyn TNLP>>) -> Self

Source

pub fn captured_solution(&self) -> Option<(Vec<Number>, Vec<Number>)>

The (x, lambda) captured at the last finalize_solution, if any.

Trait Implementations§

Source§

impl TNLP for CountingTnlp

Source§

fn presolve_infeasibility_proof(&self) -> Option<InfeasibilityProof>

Transparent decorator: forward the presolve infeasibility proof, or the application never sees it. The CLI stacks this counter above the presolve wrapper, so without this the proof is swallowed here and the solve runs anyway.

Source§

fn get_nlp_info(&mut self) -> Option<NlpInfo>

Required. Problem dimensions and triplet index style.
Source§

fn get_bounds_info(&mut self, b: BoundsInfo<'_>) -> bool

Required. Variable / constraint bounds.
Source§

fn get_starting_point(&mut self, sp: StartingPoint<'_>) -> bool

Required. Initial primal (and optionally dual) point.
Source§

fn eval_f(&mut self, x: &[Number], new_x: bool) -> Option<Number>

Required. Objective value at x.
Source§

fn eval_grad_f( &mut self, x: &[Number], new_x: bool, grad_f: &mut [Number], ) -> bool

Required. Objective gradient at x into grad_f.
Source§

fn eval_g(&mut self, x: &[Number], new_x: bool, g: &mut [Number]) -> bool

Required. Constraint values g(x).
Source§

fn eval_jac_g( &mut self, x: Option<&[Number]>, new_x: bool, mode: SparsityRequest<'_>, ) -> bool

Required. Jacobian of g. Sparsity vs. values selected by mode. x and new_x are unused on the structure call.
Source§

fn eval_h( &mut self, x: Option<&[Number]>, new_x: bool, obj_factor: Number, lambda: Option<&[Number]>, new_lambda: bool, mode: SparsityRequest<'_>, ) -> bool

Required for exact Hessian, optional for L-BFGS. Hessian of the Lagrangian. Default returns false (signals to %Ipopt that quasi-Newton must be used).
Source§

fn finalize_solution( &mut self, sol: Solution<'_>, ip_data: &IpoptData, ip_cq: &IpoptCq, )

Required. Receives the final iterate after solve.
Source§

fn get_var_con_metadata( &mut self, var: &mut MetaData, con: &mut MetaData, ) -> bool

Provide variable/constraint metadata (e.g. idx_names). Default: no metadata.
Source§

fn get_scaling_parameters(&mut self, req: ScalingRequest<'_>) -> bool

User-supplied scaling, used only when nlp_scaling_method=user-scaling. Default: declines.
Source§

fn get_variables_linearity(&mut self, types: &mut [Linearity]) -> bool

Variable linearity tags (used by Bonmin, not by Ipopt).
Source§

fn get_objective_variables_linearity(&mut self, types: &mut [Linearity]) -> bool

Per-variable linearity with respect to the objective only (a pounce extension; upstream has no objective-scoped query). NonLinear iff the objective’s nonlinear part depends on the variable; a variable that enters the objective only linearly (or not at all) is Linear even when it is nonlinear in a constraint. Consumed by presolve’s Phase-0 objective-coupling guard, which must not mistake constraint-only nonlinearity for objective coupling. Default: declines (slice untouched).
Source§

fn get_constraints_linearity(&mut self, types: &mut [Linearity]) -> bool

Constraint linearity tags. Used by adaptive-mu’s nlp_scaling_method=equilibration-based.
Source§

fn get_number_of_nonlinear_variables(&mut self) -> Index

Number of variables that appear nonlinearly. Returning -1 means “treat all as nonlinear” (the Ipopt default).
Source§

fn get_list_of_nonlinear_variables(&mut self, pos: &mut [Index]) -> bool

List of nonlinear variable indices, in the index style returned from Self::get_nlp_info.
Source§

fn intermediate_callback( &mut self, stats: IterStats, ip_data: &IpoptData, ip_cq: &IpoptCq, ) -> bool

Per-iteration intermediate callback. Returning false requests early termination with User_Requested_Stop.
Source§

fn finalize_metadata(&mut self, var: &MetaData, con: &MetaData)

Final metadata pass — called just before Self::finalize_solution. Default does nothing.
Source§

fn is_presolve_wrapper(&self) -> bool

Whether this TNLP is already an explicit generic-presolve wrapper. Read more
Source§

fn scaling_factors(&self) -> Option<Vec<f64>>

The per-variable scaling factors this decorator applies, if it is a scaling wrapper (gh#486). Consumers that read the algorithm’s iterate rather than the finalize_solution payload see scaled coordinates and need these to undo the substitution. A transparent decorator should forward the inner answer.

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> ByRef<T> for T

Source§

fn by_ref(&self) -> &T

Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more