pub trait Optimizer {
// Required method
fn optimize(
&self,
problem: &Problem,
initial_values: &HashMap<String, DVector<f64>>,
optimizer_option: Option<OptimizerOptions>,
) -> Option<HashMap<String, DVector<f64>>>;
// Provided methods
fn apply_dx(
&self,
dx: &DVector<f64>,
params: &mut HashMap<String, DVector<f64>>,
variable_name_to_col_idx_dict: &HashMap<String, usize>,
fixed_var_indexes: &HashMap<String, HashSet<usize>>,
variable_bounds: &HashMap<String, HashMap<usize, (f64, f64)>>,
) { ... }
fn apply_dx2(
&self,
dx: &DVector<f64>,
params: &mut HashMap<String, ParameterBlock>,
variable_name_to_col_idx_dict: &HashMap<String, usize>,
) { ... }
fn compute_error(
&self,
problem: &Problem,
params: &HashMap<String, ParameterBlock>,
) -> f64 { ... }
}Required Methods§
fn optimize( &self, problem: &Problem, initial_values: &HashMap<String, DVector<f64>>, optimizer_option: Option<OptimizerOptions>, ) -> Option<HashMap<String, DVector<f64>>>
Provided Methods§
fn apply_dx( &self, dx: &DVector<f64>, params: &mut HashMap<String, DVector<f64>>, variable_name_to_col_idx_dict: &HashMap<String, usize>, fixed_var_indexes: &HashMap<String, HashSet<usize>>, variable_bounds: &HashMap<String, HashMap<usize, (f64, f64)>>, )
fn apply_dx2( &self, dx: &DVector<f64>, params: &mut HashMap<String, ParameterBlock>, variable_name_to_col_idx_dict: &HashMap<String, usize>, )
fn compute_error( &self, problem: &Problem, params: &HashMap<String, ParameterBlock>, ) -> f64
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".