pub struct GradientStatus {
pub message: StatusMessage,
pub x: DVector<Float>,
pub fx: Float,
pub n_f_evals: usize,
pub n_g_evals: usize,
pub n_h_evals: usize,
pub hess: Option<DMatrix<Float>>,
pub cov: Option<DMatrix<Float>>,
pub err: Option<DVector<Float>>,
}Expand description
A status message struct containing all information about a minimization result.
Fields§
§message: StatusMessageA StatusMessage that can be set by Algorithms.
x: DVector<Float>The current parameters of the minimization.
fx: FloatThe current value of the minimization problem function at GradientStatus::x.
n_f_evals: usizeThe number of function evaluations (approximately, this is left up to individual
Algorithms to correctly compute and may not be exact).
n_g_evals: usizeThe number of gradient evaluations (approximately, this is left up to individual
Algorithms to correctly compute and may not be exact).
n_h_evals: usizeThe number of Hessian evaluations (approximately, this is left up to individual
Algorithms to correctly compute and may not be exact).
hess: Option<DMatrix<Float>>The Hessian matrix at the end of the fit (None if not computed yet)
cov: Option<DMatrix<Float>>Covariance matrix at the end of the fit (None if not computed yet)
err: Option<DVector<Float>>Errors on parameters at the end of the fit (None if not computed yet)
Implementations§
Source§impl GradientStatus
impl GradientStatus
Sourcepub fn initialize(&mut self, pos: (DVector<Float>, Float))
pub fn initialize(&mut self, pos: (DVector<Float>, Float))
Updates the GradientStatus::x and GradientStatus::fx fields and sets the status
message to an initialized state.
Sourcepub fn set_position(&mut self, pos: (DVector<Float>, Float))
pub fn set_position(&mut self, pos: (DVector<Float>, Float))
Updates the GradientStatus::x and GradientStatus::fx fields and sets the status
message to a step state.
Sourcepub fn initialize_silent(&mut self, pos: (DVector<Float>, Float))
pub fn initialize_silent(&mut self, pos: (DVector<Float>, Float))
Updates the GradientStatus::x and GradientStatus::fx fields and marks the status as
initialized without formatting a message payload.
Sourcepub fn set_position_silent(&mut self, pos: (DVector<Float>, Float))
pub fn set_position_silent(&mut self, pos: (DVector<Float>, Float))
Updates the GradientStatus::x and GradientStatus::fx fields and marks the status as
a step without formatting a message payload.
Sourcepub fn inc_n_f_evals(&mut self)
pub fn inc_n_f_evals(&mut self)
Increments GradientStatus::n_f_evals by 1.
Sourcepub fn inc_n_g_evals(&mut self)
pub fn inc_n_g_evals(&mut self)
Increments GradientStatus::n_g_evals by 1.
Sourcepub fn inc_n_h_evals(&mut self)
pub fn inc_n_h_evals(&mut self)
Increments GradientStatus::n_h_evals by 1.
Sourcepub fn set_cov(&mut self, covariance: Option<DMatrix<Float>>)
pub fn set_cov(&mut self, covariance: Option<DMatrix<Float>>)
Updates the GradientStatus::err field.
Sourcepub fn set_hess(&mut self, hessian: &DMatrix<Float>)
pub fn set_hess(&mut self, hessian: &DMatrix<Float>)
Updates the GradientStatus::hess field and computes GradientStatus::cov and GradientStatus::err.
Trait Implementations§
Source§impl<P, U, E> Algorithm<P, GradientStatus, U, E> for Adamwhere
P: Gradient<U, E>,
impl<P, U, E> Algorithm<P, GradientStatus, U, E> for Adamwhere
P: Gradient<U, E>,
Source§type Summary = MinimizationSummary
type Summary = MinimizationSummary
Source§type Config = AdamConfig
type Config = AdamConfig
Source§type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
Source§fn initialize(
&mut self,
problem: &P,
status: &mut GradientStatus,
args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<(), E>
fn initialize( &mut self, problem: &P, status: &mut GradientStatus, args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<(), E>
Source§fn step(
&mut self,
i_step: usize,
problem: &P,
status: &mut GradientStatus,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn step( &mut self, i_step: usize, problem: &P, status: &mut GradientStatus, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn summarize(
&self,
_current_step: usize,
_problem: &P,
status: &GradientStatus,
_args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<Self::Summary, E>
fn summarize( &self, _current_step: usize, _problem: &P, status: &GradientStatus, _args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<Self::Summary, E>
Algorithm::Summary from the current state of the Algorithm, which can be displayed or used elsewhere. Read moreSource§fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
Algorithm.Source§fn postprocessing(
&mut self,
problem: &P,
status: &mut S,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn postprocessing( &mut self, problem: &P, status: &mut S, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn process<C>(
&mut self,
problem: &P,
args: &U,
init: Self::Init,
config: Self::Config,
callbacks: C,
) -> Result<Self::Summary, E>
fn process<C>( &mut self, problem: &P, args: &U, init: Self::Init, config: Self::Config, callbacks: C, ) -> Result<Self::Summary, E>
Source§impl<P, U, E> Algorithm<P, GradientStatus, U, E> for ConjugateGradientwhere
P: Gradient<U, E>,
impl<P, U, E> Algorithm<P, GradientStatus, U, E> for ConjugateGradientwhere
P: Gradient<U, E>,
Source§type Summary = MinimizationSummary
type Summary = MinimizationSummary
Source§type Config = ConjugateGradientConfig
type Config = ConjugateGradientConfig
Source§type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
Source§fn initialize(
&mut self,
problem: &P,
status: &mut GradientStatus,
args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<(), E>
fn initialize( &mut self, problem: &P, status: &mut GradientStatus, args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<(), E>
Source§fn step(
&mut self,
_current_step: usize,
problem: &P,
status: &mut GradientStatus,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn step( &mut self, _current_step: usize, problem: &P, status: &mut GradientStatus, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn summarize(
&self,
_current_step: usize,
_problem: &P,
status: &GradientStatus,
_args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<Self::Summary, E>
fn summarize( &self, _current_step: usize, _problem: &P, status: &GradientStatus, _args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<Self::Summary, E>
Algorithm::Summary from the current state of the Algorithm, which can be displayed or used elsewhere. Read moreSource§fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
Algorithm.Source§fn postprocessing(
&mut self,
problem: &P,
status: &mut S,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn postprocessing( &mut self, problem: &P, status: &mut S, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn process<C>(
&mut self,
problem: &P,
args: &U,
init: Self::Init,
config: Self::Config,
callbacks: C,
) -> Result<Self::Summary, E>
fn process<C>( &mut self, problem: &P, args: &U, init: Self::Init, config: Self::Config, callbacks: C, ) -> Result<Self::Summary, E>
Source§impl<P, U, E> Algorithm<P, GradientStatus, U, E> for LBFGSBwhere
P: Gradient<U, E>,
impl<P, U, E> Algorithm<P, GradientStatus, U, E> for LBFGSBwhere
P: Gradient<U, E>,
Source§type Summary = MinimizationSummary
type Summary = MinimizationSummary
Source§type Config = LBFGSBConfig
type Config = LBFGSBConfig
Source§type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
Source§fn initialize(
&mut self,
problem: &P,
status: &mut GradientStatus,
args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<(), E>
fn initialize( &mut self, problem: &P, status: &mut GradientStatus, args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<(), E>
Source§fn step(
&mut self,
_current_step: usize,
problem: &P,
status: &mut GradientStatus,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn step( &mut self, _current_step: usize, problem: &P, status: &mut GradientStatus, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn postprocessing(
&mut self,
problem: &P,
status: &mut GradientStatus,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn postprocessing( &mut self, problem: &P, status: &mut GradientStatus, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn summarize(
&self,
_current_step: usize,
_problem: &P,
status: &GradientStatus,
_args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<Self::Summary, E>
fn summarize( &self, _current_step: usize, _problem: &P, status: &GradientStatus, _args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<Self::Summary, E>
Algorithm::Summary from the current state of the Algorithm, which can be displayed or used elsewhere. Read moreSource§fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
Algorithm.Source§fn process<C>(
&mut self,
problem: &P,
args: &U,
init: Self::Init,
config: Self::Config,
callbacks: C,
) -> Result<Self::Summary, E>
fn process<C>( &mut self, problem: &P, args: &U, init: Self::Init, config: Self::Config, callbacks: C, ) -> Result<Self::Summary, E>
Source§impl<P, U, E> Algorithm<P, GradientStatus, U, E> for TrustRegionwhere
P: Gradient<U, E>,
impl<P, U, E> Algorithm<P, GradientStatus, U, E> for TrustRegionwhere
P: Gradient<U, E>,
Source§type Summary = MinimizationSummary
type Summary = MinimizationSummary
Source§type Config = TrustRegionConfig
type Config = TrustRegionConfig
Source§type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
type Init = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
Source§fn initialize(
&mut self,
problem: &P,
status: &mut GradientStatus,
args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<(), E>
fn initialize( &mut self, problem: &P, status: &mut GradientStatus, args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<(), E>
Source§fn step(
&mut self,
_current_step: usize,
problem: &P,
status: &mut GradientStatus,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn step( &mut self, _current_step: usize, problem: &P, status: &mut GradientStatus, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn postprocessing(
&mut self,
problem: &P,
status: &mut GradientStatus,
args: &U,
config: &Self::Config,
) -> Result<(), E>
fn postprocessing( &mut self, problem: &P, status: &mut GradientStatus, args: &U, config: &Self::Config, ) -> Result<(), E>
Source§fn summarize(
&self,
_current_step: usize,
_problem: &P,
status: &GradientStatus,
_args: &U,
init: &Self::Init,
config: &Self::Config,
) -> Result<Self::Summary, E>
fn summarize( &self, _current_step: usize, _problem: &P, status: &GradientStatus, _args: &U, init: &Self::Init, config: &Self::Config, ) -> Result<Self::Summary, E>
Algorithm::Summary from the current state of the Algorithm, which can be displayed or used elsewhere. Read moreSource§fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
fn default_callbacks() -> Callbacks<Self, P, GradientStatus, U, E, Self::Config>where
Self: Sized,
Algorithm.Source§fn process<C>(
&mut self,
problem: &P,
args: &U,
init: Self::Init,
config: Self::Config,
callbacks: C,
) -> Result<Self::Summary, E>
fn process<C>( &mut self, problem: &P, args: &U, init: Self::Init, config: Self::Config, callbacks: C, ) -> Result<Self::Summary, E>
Source§impl<P, U, E> CheckpointableAlgorithm<P, GradientStatus, U, E> for LBFGSBwhere
P: Gradient<U, E>,
impl<P, U, E> CheckpointableAlgorithm<P, GradientStatus, U, E> for LBFGSBwhere
P: Gradient<U, E>,
Source§type Checkpoint = LBFGSBCheckpoint
type Checkpoint = LBFGSBCheckpoint
Source§fn checkpoint(
&self,
status: &GradientStatus,
next_step: usize,
) -> Self::Checkpoint
fn checkpoint( &self, status: &GradientStatus, next_step: usize, ) -> Self::Checkpoint
next_step.Source§fn restore(
&mut self,
checkpoint: &Self::Checkpoint,
config: &Self::Config,
) -> (GradientStatus, usize)
fn restore( &mut self, checkpoint: &Self::Checkpoint, config: &Self::Config, ) -> (GradientStatus, usize)
Source§impl Clone for GradientStatus
impl Clone for GradientStatus
Source§fn clone(&self) -> GradientStatus
fn clone(&self) -> GradientStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GradientStatus
impl Debug for GradientStatus
Source§impl Default for GradientStatus
impl Default for GradientStatus
Source§fn default() -> GradientStatus
fn default() -> GradientStatus
Source§impl<'de> Deserialize<'de> for GradientStatus
impl<'de> Deserialize<'de> for GradientStatus
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<U, E> LineSearch<GradientStatus, U, E> for BacktrackingLineSearch
impl<U, E> LineSearch<GradientStatus, U, E> for BacktrackingLineSearch
Source§fn search(
&mut self,
x: &DVector<Float>,
p: &DVector<Float>,
max_step: Option<Float>,
problem: &dyn Gradient<U, E>,
_bounds: Option<&Bounds>,
args: &U,
status: &mut GradientStatus,
) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
fn search( &mut self, x: &DVector<Float>, p: &DVector<Float>, max_step: Option<Float>, problem: &dyn Gradient<U, E>, _bounds: Option<&Bounds>, args: &U, status: &mut GradientStatus, ) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
x, the search direction
p, the objective function func, optional bounds bounds, and any arguments to the
objective function args, and returns a Result containing another Result. The
outer Result tells the caller if the line search encountered any errors in evaluating
cost functions or gradients, while the inner Result indicates if the line search
algorithm found a valid step. Even if the line search failed to find a valid step, it will still return the best LineSearchOutput found, as there are some cases where this is recoverable. For example, some line searches will hit the maximum number of iterations for an interval bisection if x is the true minimum, in which case a search between x + eps and x + anything will never improve upon x itself. Individual algorithms should determine how to handle these edge cases. Read moreSource§impl<U, E> LineSearch<GradientStatus, U, E> for HagerZhangLineSearch
impl<U, E> LineSearch<GradientStatus, U, E> for HagerZhangLineSearch
Source§fn search(
&mut self,
x0: &DVector<Float>,
p: &DVector<Float>,
max_step: Option<Float>,
problem: &dyn Gradient<U, E>,
_bounds: Option<&Bounds>,
args: &U,
status: &mut GradientStatus,
) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
fn search( &mut self, x0: &DVector<Float>, p: &DVector<Float>, max_step: Option<Float>, problem: &dyn Gradient<U, E>, _bounds: Option<&Bounds>, args: &U, status: &mut GradientStatus, ) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
x, the search direction
p, the objective function func, optional bounds bounds, and any arguments to the
objective function args, and returns a Result containing another Result. The
outer Result tells the caller if the line search encountered any errors in evaluating
cost functions or gradients, while the inner Result indicates if the line search
algorithm found a valid step. Even if the line search failed to find a valid step, it will still return the best LineSearchOutput found, as there are some cases where this is recoverable. For example, some line searches will hit the maximum number of iterations for an interval bisection if x is the true minimum, in which case a search between x + eps and x + anything will never improve upon x itself. Individual algorithms should determine how to handle these edge cases. Read moreSource§impl<U, E> LineSearch<GradientStatus, U, E> for MoreThuenteLineSearch
impl<U, E> LineSearch<GradientStatus, U, E> for MoreThuenteLineSearch
Source§fn search(
&mut self,
x0: &DVector<Float>,
p: &DVector<Float>,
max_step: Option<Float>,
problem: &dyn Gradient<U, E>,
_bounds: Option<&Bounds>,
args: &U,
status: &mut GradientStatus,
) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
fn search( &mut self, x0: &DVector<Float>, p: &DVector<Float>, max_step: Option<Float>, problem: &dyn Gradient<U, E>, _bounds: Option<&Bounds>, args: &U, status: &mut GradientStatus, ) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
x, the search direction
p, the objective function func, optional bounds bounds, and any arguments to the
objective function args, and returns a Result containing another Result. The
outer Result tells the caller if the line search encountered any errors in evaluating
cost functions or gradients, while the inner Result indicates if the line search
algorithm found a valid step. Even if the line search failed to find a valid step, it will still return the best LineSearchOutput found, as there are some cases where this is recoverable. For example, some line searches will hit the maximum number of iterations for an interval bisection if x is the true minimum, in which case a search between x + eps and x + anything will never improve upon x itself. Individual algorithms should determine how to handle these edge cases. Read moreSource§impl<U, E> LineSearch<GradientStatus, U, E> for StrongWolfeLineSearch
impl<U, E> LineSearch<GradientStatus, U, E> for StrongWolfeLineSearch
Source§fn search(
&mut self,
x: &DVector<Float>,
p: &DVector<Float>,
max_step: Option<Float>,
problem: &dyn Gradient<U, E>,
bounds: Option<&Bounds>,
args: &U,
status: &mut GradientStatus,
) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
fn search( &mut self, x: &DVector<Float>, p: &DVector<Float>, max_step: Option<Float>, problem: &dyn Gradient<U, E>, bounds: Option<&Bounds>, args: &U, status: &mut GradientStatus, ) -> Result<Result<LineSearchOutput, LineSearchOutput>, E>
x, the search direction
p, the objective function func, optional bounds bounds, and any arguments to the
objective function args, and returns a Result containing another Result. The
outer Result tells the caller if the line search encountered any errors in evaluating
cost functions or gradients, while the inner Result indicates if the line search
algorithm found a valid step. Even if the line search failed to find a valid step, it will still return the best LineSearchOutput found, as there are some cases where this is recoverable. For example, some line searches will hit the maximum number of iterations for an interval bisection if x is the true minimum, in which case a search between x + eps and x + anything will never improve upon x itself. Individual algorithms should determine how to handle these edge cases. Read moreSource§impl ProgressStatus for GradientStatus
impl ProgressStatus for GradientStatus
Source§impl Serialize for GradientStatus
impl Serialize for GradientStatus
Source§impl Status for GradientStatus
impl Status for GradientStatus
Source§fn reset(&mut self)
fn reset(&mut self)
Algorithm::process run. Only members that are
not persistent between runs should be reset. For example, the initial parameters of
a minimization should not be reset.Source§fn message(&self) -> &StatusMessage
fn message(&self) -> &StatusMessage
Source§fn set_message(&mut self) -> &mut StatusMessage
fn set_message(&mut self) -> &mut StatusMessage
Source§impl<P, U, E> Terminator<Adam, P, GradientStatus, U, E, AdamConfig> for AdamEMATerminatorwhere
P: Gradient<U, E>,
impl<P, U, E> Terminator<Adam, P, GradientStatus, U, E, AdamConfig> for AdamEMATerminatorwhere
P: Gradient<U, E>,
Source§fn check_for_termination(
&mut self,
_current_step: usize,
algorithm: &mut Adam,
_problem: &P,
status: &mut GradientStatus,
_args: &U,
_config: &AdamConfig,
) -> ControlFlow<()>
fn check_for_termination( &mut self, _current_step: usize, algorithm: &mut Adam, _problem: &P, status: &mut GradientStatus, _args: &U, _config: &AdamConfig, ) -> ControlFlow<()>
Algorithm.Source§impl<P, U, E> Terminator<ConjugateGradient, P, GradientStatus, U, E, ConjugateGradientConfig> for ConjugateGradientGTerminatorwhere
P: Gradient<U, E>,
impl<P, U, E> Terminator<ConjugateGradient, P, GradientStatus, U, E, ConjugateGradientConfig> for ConjugateGradientGTerminatorwhere
P: Gradient<U, E>,
Source§fn check_for_termination(
&mut self,
_current_step: usize,
algorithm: &mut ConjugateGradient,
_problem: &P,
status: &mut GradientStatus,
_args: &U,
_config: &ConjugateGradientConfig,
) -> ControlFlow<()>
fn check_for_termination( &mut self, _current_step: usize, algorithm: &mut ConjugateGradient, _problem: &P, status: &mut GradientStatus, _args: &U, _config: &ConjugateGradientConfig, ) -> ControlFlow<()>
Algorithm.Source§impl<P, U, E> Terminator<LBFGSB, P, GradientStatus, U, E, LBFGSBConfig> for LBFGSBFTerminatorwhere
P: Gradient<U, E>,
impl<P, U, E> Terminator<LBFGSB, P, GradientStatus, U, E, LBFGSBConfig> for LBFGSBFTerminatorwhere
P: Gradient<U, E>,
Source§fn check_for_termination(
&mut self,
_current_step: usize,
algorithm: &mut LBFGSB,
_problem: &P,
status: &mut GradientStatus,
_args: &U,
_config: &LBFGSBConfig,
) -> ControlFlow<()>
fn check_for_termination( &mut self, _current_step: usize, algorithm: &mut LBFGSB, _problem: &P, status: &mut GradientStatus, _args: &U, _config: &LBFGSBConfig, ) -> ControlFlow<()>
Algorithm.Source§impl<P, U, E> Terminator<LBFGSB, P, GradientStatus, U, E, LBFGSBConfig> for LBFGSBGTerminatorwhere
P: Gradient<U, E>,
impl<P, U, E> Terminator<LBFGSB, P, GradientStatus, U, E, LBFGSBConfig> for LBFGSBGTerminatorwhere
P: Gradient<U, E>,
Source§fn check_for_termination(
&mut self,
_current_step: usize,
algorithm: &mut LBFGSB,
_problem: &P,
status: &mut GradientStatus,
_args: &U,
_config: &LBFGSBConfig,
) -> ControlFlow<()>
fn check_for_termination( &mut self, _current_step: usize, algorithm: &mut LBFGSB, _problem: &P, status: &mut GradientStatus, _args: &U, _config: &LBFGSBConfig, ) -> ControlFlow<()>
Algorithm.Source§impl<P, U, E> Terminator<LBFGSB, P, GradientStatus, U, E, LBFGSBConfig> for LBFGSBInfNormGTerminatorwhere
P: Gradient<U, E>,
impl<P, U, E> Terminator<LBFGSB, P, GradientStatus, U, E, LBFGSBConfig> for LBFGSBInfNormGTerminatorwhere
P: Gradient<U, E>,
Source§fn check_for_termination(
&mut self,
_current_step: usize,
algorithm: &mut LBFGSB,
_problem: &P,
status: &mut GradientStatus,
_args: &U,
_config: &LBFGSBConfig,
) -> ControlFlow<()>
fn check_for_termination( &mut self, _current_step: usize, algorithm: &mut LBFGSB, _problem: &P, status: &mut GradientStatus, _args: &U, _config: &LBFGSBConfig, ) -> ControlFlow<()>
Algorithm.Source§impl<P, U, E> Terminator<TrustRegion, P, GradientStatus, U, E, TrustRegionConfig> for TrustRegionGTerminatorwhere
P: Gradient<U, E>,
impl<P, U, E> Terminator<TrustRegion, P, GradientStatus, U, E, TrustRegionConfig> for TrustRegionGTerminatorwhere
P: Gradient<U, E>,
Source§fn check_for_termination(
&mut self,
_current_step: usize,
algorithm: &mut TrustRegion,
_problem: &P,
status: &mut GradientStatus,
_args: &U,
_config: &TrustRegionConfig,
) -> ControlFlow<()>
fn check_for_termination( &mut self, _current_step: usize, algorithm: &mut TrustRegion, _problem: &P, status: &mut GradientStatus, _args: &U, _config: &TrustRegionConfig, ) -> ControlFlow<()>
Algorithm.Auto Trait Implementations§
impl Freeze for GradientStatus
impl RefUnwindSafe for GradientStatus
impl Send for GradientStatus
impl Sync for GradientStatus
impl Unpin for GradientStatus
impl UnsafeUnpin for GradientStatus
impl UnwindSafe for GradientStatus
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> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.