pub struct IpmOptions {
pub max_iter: usize,
pub eps: f64,
pub delta_min: f64,
pub delta_p_init: f64,
pub delta_d_init: f64,
pub max_correctors: usize,
pub dd_ldl: bool,
/* private fields */
}Expand description
IPM (interior-point method) solver options.
Set via SolverOptions::ipm. Call IpmOptions::validate (or
SolverOptions::validate) before solving to catch invalid values early.
Fields§
§max_iter: usizeTotal IPM iterations across all attempts. Default: usize::MAX (timeout is the primary guard).
Each attempt is internally capped at MAX_ITER_PER_ATTEMPT (currently 500);
this field is the cumulative budget across all retry attempts.
eps: f64Convergence tolerance. Default: DEFAULT_IPM_EPS.
delta_min: f64Proximity regularisation lower bound δ_min. Default: DEFAULT_IPM_DELTA_MIN.
delta_p_init: f64Initial primal proximity regularisation δ_p. Default: DEFAULT_IPM_DELTA_INIT.
delta_d_init: f64Initial dual proximity regularisation δ_d. Default: DEFAULT_IPM_DELTA_INIT.
max_correctors: usizeMaximum Gondzio correctors. Default: DEFAULT_IPM_MAX_CORRECTORS.
dd_ldl: boolUse TwoFloat (double-double, ~106-bit) LDL for KKT systems where f64 conditioning
would exceed the requested accuracy. Default: false.
Implementations§
Source§impl IpmOptions
impl IpmOptions
Sourcepub fn validate(&self) -> Result<(), OptionsError>
pub fn validate(&self) -> Result<(), OptionsError>
Validate all numeric fields.
Returns the first Err in field declaration order.
Invalid: non-finite or non-positive eps / delta_*, or max_correctors == 0.
Sourcepub fn with_eps(self, eps: f64) -> Result<Self, OptionsError>
pub fn with_eps(self, eps: f64) -> Result<Self, OptionsError>
Builder: set eps, validated immediately.
Sourcepub fn with_max_correctors(self, n: usize) -> Result<Self, OptionsError>
pub fn with_max_correctors(self, n: usize) -> Result<Self, OptionsError>
Builder: set max_correctors, validated immediately.
Trait Implementations§
Source§impl Clone for IpmOptions
impl Clone for IpmOptions
Source§fn clone(&self) -> IpmOptions
fn clone(&self) -> IpmOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IpmOptions
impl Debug for IpmOptions
Auto Trait Implementations§
impl Freeze for IpmOptions
impl RefUnwindSafe for IpmOptions
impl Send for IpmOptions
impl Sync for IpmOptions
impl Unpin for IpmOptions
impl UnsafeUnpin for IpmOptions
impl UnwindSafe for IpmOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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