Trait optimization_engine::core::AlgorithmEngine
source · pub trait AlgorithmEngine {
// Required methods
fn step(&mut self, u: &mut [f64]) -> Result<bool, SolverError>;
fn init(&mut self, u: &mut [f64]) -> FunctionCallResult;
}
Expand description
Engine supporting an algorithm
An engine is responsible for the allocation of memory for an algorithm, especially memory that is reuasble is multiple instances of the same algorithm (as in model predictive control).
It defines what the algorithm does at every step (see step
) and whether
the specified termination criterion is satisfied
Required Methods§
sourcefn step(&mut self, u: &mut [f64]) -> Result<bool, SolverError>
fn step(&mut self, u: &mut [f64]) -> Result<bool, SolverError>
Take a step of the algorithm and return Ok(true)
only if the iterations should continue
sourcefn init(&mut self, u: &mut [f64]) -> FunctionCallResult
fn init(&mut self, u: &mut [f64]) -> FunctionCallResult
Initializes the algorithm