pub struct IterState<O: ArgminOp> {Show 26 fields
pub param: O::Param,
pub prev_param: O::Param,
pub best_param: O::Param,
pub prev_best_param: O::Param,
pub cost: O::Float,
pub prev_cost: O::Float,
pub best_cost: O::Float,
pub prev_best_cost: O::Float,
pub target_cost: O::Float,
pub grad: Option<O::Param>,
pub prev_grad: Option<O::Param>,
pub hessian: Option<O::Hessian>,
pub prev_hessian: Option<O::Hessian>,
pub jacobian: Option<O::Jacobian>,
pub prev_jacobian: Option<O::Jacobian>,
pub population: Option<Vec<(O::Param, O::Float)>>,
pub iter: u64,
pub last_best_iter: u64,
pub max_iters: u64,
pub cost_func_count: u64,
pub grad_func_count: u64,
pub hessian_func_count: u64,
pub jacobian_func_count: u64,
pub modify_func_count: u64,
pub time: Duration,
pub termination_reason: TerminationReason,
}
Expand description
Maintains the state from iteration to iteration of a solver
Fields§
§param: O::Param
Current parameter vector
prev_param: O::Param
Previous parameter vector
best_param: O::Param
Current best parameter vector
prev_best_param: O::Param
Previous best parameter vector
cost: O::Float
Current cost function value
prev_cost: O::Float
Previous cost function value
best_cost: O::Float
Current best cost function value
prev_best_cost: O::Float
Previous best cost function value
target_cost: O::Float
Target cost function value
grad: Option<O::Param>
Current gradient
prev_grad: Option<O::Param>
Previous gradient
hessian: Option<O::Hessian>
Current Hessian
prev_hessian: Option<O::Hessian>
Previous Hessian
jacobian: Option<O::Jacobian>
Current Jacobian
prev_jacobian: Option<O::Jacobian>
Previous Jacobian
population: Option<Vec<(O::Param, O::Float)>>
All members for population-based algorithms as (param, cost) tuples
iter: u64
Current iteration
last_best_iter: u64
Iteration number of last best cost
max_iters: u64
Maximum number of iterations
cost_func_count: u64
Number of cost function evaluations so far
grad_func_count: u64
Number of gradient evaluations so far
hessian_func_count: u64
Number of Hessian evaluations so far
jacobian_func_count: u64
Number of Jacobian evaluations so far
modify_func_count: u64
Number of modify evaluations so far
time: Duration
Time required so far
termination_reason: TerminationReason
Reason of termination
Implementations§
Source§impl<O: ArgminOp> IterState<O>
impl<O: ArgminOp> IterState<O>
Sourcepub fn param(&mut self, param: O::Param) -> &mut Self
pub fn param(&mut self, param: O::Param) -> &mut Self
Set parameter vector. This shifts the stored parameter vector to the previous parameter vector.
Sourcepub fn best_param(&mut self, param: O::Param) -> &mut Self
pub fn best_param(&mut self, param: O::Param) -> &mut Self
Set best paramater vector. This shifts the stored best parameter vector to the previous best parameter vector.
Sourcepub fn cost(&mut self, cost: O::Float) -> &mut Self
pub fn cost(&mut self, cost: O::Float) -> &mut Self
Set the current cost function value. This shifts the stored cost function value to the previous cost function value.
Sourcepub fn best_cost(&mut self, cost: O::Float) -> &mut Self
pub fn best_cost(&mut self, cost: O::Float) -> &mut Self
Set the current best cost function value. This shifts the stored best cost function value to the previous cost function value.
Sourcepub fn grad(&mut self, grad: O::Param) -> &mut Self
pub fn grad(&mut self, grad: O::Param) -> &mut Self
Set gradient. This shifts the stored gradient to the previous gradient.
Sourcepub fn hessian(&mut self, hessian: O::Hessian) -> &mut Self
pub fn hessian(&mut self, hessian: O::Hessian) -> &mut Self
Set Hessian. This shifts the stored Hessian to the previous Hessian.
Sourcepub fn jacobian(&mut self, jacobian: O::Jacobian) -> &mut Self
pub fn jacobian(&mut self, jacobian: O::Jacobian) -> &mut Self
Set Jacobian. This shifts the stored Jacobian to the previous Jacobian.
Sourcepub fn population(&mut self, population: Vec<(O::Param, O::Float)>) -> &mut Self
pub fn population(&mut self, population: Vec<(O::Param, O::Float)>) -> &mut Self
Set population
Sourcepub fn target_cost(&mut self, target_cost: O::Float) -> &mut Self
pub fn target_cost(&mut self, target_cost: O::Float) -> &mut Self
Set target cost value
Sourcepub fn last_best_iter(&mut self, last_best_iter: u64) -> &mut Self
pub fn last_best_iter(&mut self, last_best_iter: u64) -> &mut Self
Set iteration number where the previous best parameter vector was found
Sourcepub fn termination_reason(
&mut self,
termination_reason: TerminationReason,
) -> &mut Self
pub fn termination_reason( &mut self, termination_reason: TerminationReason, ) -> &mut Self
Set termination_reason
Sourcepub fn get_prev_param(&self) -> O::Param
pub fn get_prev_param(&self) -> O::Param
Returns previous parameter vector
Sourcepub fn get_best_param(&self) -> O::Param
pub fn get_best_param(&self) -> O::Param
Returns best parameter vector
Sourcepub fn get_prev_best_param(&self) -> O::Param
pub fn get_prev_best_param(&self) -> O::Param
Returns previous best parameter vector
Sourcepub fn get_prev_cost(&self) -> O::Float
pub fn get_prev_cost(&self) -> O::Float
Returns previous cost function value
Sourcepub fn get_best_cost(&self) -> O::Float
pub fn get_best_cost(&self) -> O::Float
Returns current best cost function value
Sourcepub fn get_prev_best_cost(&self) -> O::Float
pub fn get_prev_best_cost(&self) -> O::Float
Returns previous best cost function value
Sourcepub fn get_target_cost(&self) -> O::Float
pub fn get_target_cost(&self) -> O::Float
Returns target cost
Sourcepub fn get_cost_func_count(&self) -> u64
pub fn get_cost_func_count(&self) -> u64
Returns current cost function evaluation count
Sourcepub fn get_grad_func_count(&self) -> u64
pub fn get_grad_func_count(&self) -> u64
Returns current gradient function evaluation count
Sourcepub fn get_hessian_func_count(&self) -> u64
pub fn get_hessian_func_count(&self) -> u64
Returns current Hessian function evaluation count
Sourcepub fn get_jacobian_func_count(&self) -> u64
pub fn get_jacobian_func_count(&self) -> u64
Returns current Jacobian function evaluation count
Sourcepub fn get_modify_func_count(&self) -> u64
pub fn get_modify_func_count(&self) -> u64
Returns current Modify function evaluation count
Sourcepub fn get_last_best_iter(&self) -> u64
pub fn get_last_best_iter(&self) -> u64
Returns iteration number where the last best parameter vector was found
Sourcepub fn get_termination_reason(&self) -> TerminationReason
pub fn get_termination_reason(&self) -> TerminationReason
Get termination_reason
Sourcepub fn get_prev_grad(&self) -> Option<O::Param>
pub fn get_prev_grad(&self) -> Option<O::Param>
Returns previous gradient
Sourcepub fn get_hessian(&self) -> Option<O::Hessian>
pub fn get_hessian(&self) -> Option<O::Hessian>
Returns current Hessian
Sourcepub fn get_prev_hessian(&self) -> Option<O::Hessian>
pub fn get_prev_hessian(&self) -> Option<O::Hessian>
Returns previous Hessian
Sourcepub fn get_jacobian(&self) -> Option<O::Jacobian>
pub fn get_jacobian(&self) -> Option<O::Jacobian>
Returns current Jacobian
Sourcepub fn get_prev_jacobian(&self) -> Option<O::Jacobian>
pub fn get_prev_jacobian(&self) -> Option<O::Jacobian>
Returns previous Jacobian
Sourcepub fn get_max_iters(&self) -> u64
pub fn get_max_iters(&self) -> u64
Returns maximum number of iterations
Sourcepub fn increment_iter(&mut self)
pub fn increment_iter(&mut self)
Increment the number of iterations by one
Sourcepub fn increment_func_counts(&mut self, op: &OpWrapper<O>)
pub fn increment_func_counts(&mut self, op: &OpWrapper<O>)
Increment all function evaluation counts by the evaluation counts of another operator
wrapped in OpWrapper
.
Sourcepub fn set_func_counts(&mut self, op: &OpWrapper<O>)
pub fn set_func_counts(&mut self, op: &OpWrapper<O>)
Set all function evaluation counts to the evaluation counts of another operator
wrapped in OpWrapper
.
Sourcepub fn increment_cost_func_count(&mut self, num: u64)
pub fn increment_cost_func_count(&mut self, num: u64)
Increment cost function evaluation count by num
Sourcepub fn increment_grad_func_count(&mut self, num: u64)
pub fn increment_grad_func_count(&mut self, num: u64)
Increment gradient function evaluation count by num
Sourcepub fn increment_hessian_func_count(&mut self, num: u64)
pub fn increment_hessian_func_count(&mut self, num: u64)
Increment Hessian function evaluation count by num
Sourcepub fn increment_jacobian_func_count(&mut self, num: u64)
pub fn increment_jacobian_func_count(&mut self, num: u64)
Increment Jacobian function evaluation count by num
Sourcepub fn increment_modify_func_count(&mut self, num: u64)
pub fn increment_modify_func_count(&mut self, num: u64)
Increment modify function evaluation count by num
Sourcepub fn is_best(&self) -> bool
pub fn is_best(&self) -> bool
Returns whether the current parameter vector is also the best parameter vector found so far.
Sourcepub fn terminated(&self) -> bool
pub fn terminated(&self) -> bool
Return whether the algorithm has terminated or not