Struct argmin::core::IterState [−][src]
pub struct IterState<O: ArgminOp> {}Show 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: Option<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: Option<Duration>
Time required so far
termination_reason: TerminationReason
Reason of termination
Implementations
impl<O: ArgminOp> IterState<O>
[src]
impl<O: ArgminOp> IterState<O>
[src]pub fn param(&mut self, param: O::Param) -> &mut Self
[src]
pub fn param(&mut self, param: O::Param) -> &mut Self
[src]Set parameter vector. This shifts the stored parameter vector to the previous parameter vector.
pub fn best_param(&mut self, param: O::Param) -> &mut Self
[src]
pub fn best_param(&mut self, param: O::Param) -> &mut Self
[src]Set best paramater vector. This shifts the stored best parameter vector to the previous best parameter vector.
pub fn cost(&mut self, cost: O::Float) -> &mut Self
[src]
pub fn cost(&mut self, cost: O::Float) -> &mut Self
[src]Set the current cost function value. This shifts the stored cost function value to the previous cost function value.
pub fn best_cost(&mut self, cost: O::Float) -> &mut Self
[src]
pub fn best_cost(&mut self, cost: O::Float) -> &mut Self
[src]Set the current best cost function value. This shifts the stored best cost function value to the previous cost function value.
pub fn grad(&mut self, grad: O::Param) -> &mut Self
[src]
pub fn grad(&mut self, grad: O::Param) -> &mut Self
[src]Set gradient. This shifts the stored gradient to the previous gradient.
pub fn hessian(&mut self, hessian: O::Hessian) -> &mut Self
[src]
pub fn hessian(&mut self, hessian: O::Hessian) -> &mut Self
[src]Set Hessian. This shifts the stored Hessian to the previous Hessian.
pub fn jacobian(&mut self, jacobian: O::Jacobian) -> &mut Self
[src]
pub fn jacobian(&mut self, jacobian: O::Jacobian) -> &mut Self
[src]Set Jacobian. This shifts the stored Jacobian to the previous Jacobian.
pub fn target_cost(&mut self, target_cost: O::Float) -> &mut Self
[src]
pub fn target_cost(&mut self, target_cost: O::Float) -> &mut Self
[src]Set target cost value
pub fn last_best_iter(&mut self, last_best_iter: u64) -> &mut Self
[src]
pub fn last_best_iter(&mut self, last_best_iter: u64) -> &mut Self
[src]Set iteration number where the previous best parameter vector was found
pub fn termination_reason(
&mut self,
termination_reason: TerminationReason
) -> &mut Self
[src]
pub fn termination_reason(
&mut self,
termination_reason: TerminationReason
) -> &mut Self
[src]Set termination_reason
pub fn get_prev_param(&self) -> O::Param
[src]
pub fn get_prev_param(&self) -> O::Param
[src]Returns previous parameter vector
pub fn get_best_param(&self) -> O::Param
[src]
pub fn get_best_param(&self) -> O::Param
[src]Returns best parameter vector
pub fn get_prev_best_param(&self) -> O::Param
[src]
pub fn get_prev_best_param(&self) -> O::Param
[src]Returns previous best parameter vector
pub fn get_prev_cost(&self) -> O::Float
[src]
pub fn get_prev_cost(&self) -> O::Float
[src]Returns previous cost function value
pub fn get_best_cost(&self) -> O::Float
[src]
pub fn get_best_cost(&self) -> O::Float
[src]Returns current best cost function value
pub fn get_prev_best_cost(&self) -> O::Float
[src]
pub fn get_prev_best_cost(&self) -> O::Float
[src]Returns previous best cost function value
pub fn get_target_cost(&self) -> O::Float
[src]
pub fn get_target_cost(&self) -> O::Float
[src]Returns target cost
pub fn get_cost_func_count(&self) -> u64
[src]
pub fn get_cost_func_count(&self) -> u64
[src]Returns current cost function evaluation count
pub fn get_grad_func_count(&self) -> u64
[src]
pub fn get_grad_func_count(&self) -> u64
[src]Returns current gradient function evaluation count
pub fn get_hessian_func_count(&self) -> u64
[src]
pub fn get_hessian_func_count(&self) -> u64
[src]Returns current Hessian function evaluation count
pub fn get_jacobian_func_count(&self) -> u64
[src]
pub fn get_jacobian_func_count(&self) -> u64
[src]Returns current Jacobian function evaluation count
pub fn get_modify_func_count(&self) -> u64
[src]
pub fn get_modify_func_count(&self) -> u64
[src]Returns current Modify function evaluation count
pub fn get_last_best_iter(&self) -> u64
[src]
pub fn get_last_best_iter(&self) -> u64
[src]Returns iteration number where the last best parameter vector was found
pub fn get_termination_reason(&self) -> TerminationReason
[src]
pub fn get_termination_reason(&self) -> TerminationReason
[src]Get termination_reason
pub fn get_prev_grad(&self) -> Option<O::Param>
[src]
pub fn get_prev_grad(&self) -> Option<O::Param>
[src]Returns previous gradient
pub fn get_hessian(&self) -> Option<O::Hessian>
[src]
pub fn get_hessian(&self) -> Option<O::Hessian>
[src]Returns current Hessian
pub fn get_prev_hessian(&self) -> Option<O::Hessian>
[src]
pub fn get_prev_hessian(&self) -> Option<O::Hessian>
[src]Returns previous Hessian
pub fn get_jacobian(&self) -> Option<O::Jacobian>
[src]
pub fn get_jacobian(&self) -> Option<O::Jacobian>
[src]Returns current Jacobian
pub fn get_prev_jacobian(&self) -> Option<O::Jacobian>
[src]
pub fn get_prev_jacobian(&self) -> Option<O::Jacobian>
[src]Returns previous Jacobian
pub fn get_max_iters(&self) -> u64
[src]
pub fn get_max_iters(&self) -> u64
[src]Returns maximum number of iterations
pub fn increment_iter(&mut self)
[src]
pub fn increment_iter(&mut self)
[src]Increment the number of iterations by one
pub fn increment_func_counts(&mut self, op: &OpWrapper<O>)
[src]
pub fn increment_func_counts(&mut self, op: &OpWrapper<O>)
[src]Increment all function evaluation counts by the evaluation counts of another operator
wrapped in OpWrapper
.
pub fn set_func_counts(&mut self, op: &OpWrapper<O>)
[src]
pub fn set_func_counts(&mut self, op: &OpWrapper<O>)
[src]Set all function evaluation counts to the evaluation counts of another operator
wrapped in OpWrapper
.
pub fn increment_cost_func_count(&mut self, num: u64)
[src]
pub fn increment_cost_func_count(&mut self, num: u64)
[src]Increment cost function evaluation count by num
pub fn increment_grad_func_count(&mut self, num: u64)
[src]
pub fn increment_grad_func_count(&mut self, num: u64)
[src]Increment gradient function evaluation count by num
pub fn increment_hessian_func_count(&mut self, num: u64)
[src]
pub fn increment_hessian_func_count(&mut self, num: u64)
[src]Increment Hessian function evaluation count by num
pub fn increment_jacobian_func_count(&mut self, num: u64)
[src]
pub fn increment_jacobian_func_count(&mut self, num: u64)
[src]Increment Jacobian function evaluation count by num
pub fn increment_modify_func_count(&mut self, num: u64)
[src]
pub fn increment_modify_func_count(&mut self, num: u64)
[src]Increment modify function evaluation count by num
pub fn is_best(&self) -> bool
[src]
pub fn is_best(&self) -> bool
[src]Returns whether the current parameter vector is also the best parameter vector found so far.
pub fn terminated(&self) -> bool
[src]
pub fn terminated(&self) -> bool
[src]Return whether the algorithm has terminated or not
Trait Implementations
impl<O: Clone + ArgminOp> Clone for IterState<O> where
O::Param: Clone,
O::Param: Clone,
O::Param: Clone,
O::Param: Clone,
O::Float: Clone,
O::Float: Clone,
O::Float: Clone,
O::Float: Clone,
O::Float: Clone,
O::Param: Clone,
O::Param: Clone,
O::Hessian: Clone,
O::Hessian: Clone,
O::Jacobian: Clone,
O::Jacobian: Clone,
O::Param: Clone,
O::Float: Clone,
[src]
impl<O: Clone + ArgminOp> Clone for IterState<O> where
O::Param: Clone,
O::Param: Clone,
O::Param: Clone,
O::Param: Clone,
O::Float: Clone,
O::Float: Clone,
O::Float: Clone,
O::Float: Clone,
O::Float: Clone,
O::Param: Clone,
O::Param: Clone,
O::Hessian: Clone,
O::Hessian: Clone,
O::Jacobian: Clone,
O::Jacobian: Clone,
O::Param: Clone,
O::Float: Clone,
[src]impl<O: Debug + ArgminOp> Debug for IterState<O> where
O::Param: Debug,
O::Param: Debug,
O::Param: Debug,
O::Param: Debug,
O::Float: Debug,
O::Float: Debug,
O::Float: Debug,
O::Float: Debug,
O::Float: Debug,
O::Param: Debug,
O::Param: Debug,
O::Hessian: Debug,
O::Hessian: Debug,
O::Jacobian: Debug,
O::Jacobian: Debug,
O::Param: Debug,
O::Float: Debug,
[src]
impl<O: Debug + ArgminOp> Debug for IterState<O> where
O::Param: Debug,
O::Param: Debug,
O::Param: Debug,
O::Param: Debug,
O::Float: Debug,
O::Float: Debug,
O::Float: Debug,
O::Float: Debug,
O::Float: Debug,
O::Param: Debug,
O::Param: Debug,
O::Hessian: Debug,
O::Hessian: Debug,
O::Jacobian: Debug,
O::Jacobian: Debug,
O::Param: Debug,
O::Float: Debug,
[src]impl<'de, O: ArgminOp> Deserialize<'de> for IterState<O> where
O::Param: Deserialize<'de>,
O::Param: Deserialize<'de>,
O::Param: Deserialize<'de>,
O::Param: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
[src]
impl<'de, O: ArgminOp> Deserialize<'de> for IterState<O> where
O::Param: Deserialize<'de>,
O::Param: Deserialize<'de>,
O::Param: Deserialize<'de>,
O::Param: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
O::Float: Deserialize<'de>,
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl<O> RefUnwindSafe for IterState<O> where
<O as ArgminOp>::Float: RefUnwindSafe,
<O as ArgminOp>::Hessian: RefUnwindSafe,
<O as ArgminOp>::Jacobian: RefUnwindSafe,
<O as ArgminOp>::Param: RefUnwindSafe,
<O as ArgminOp>::Float: RefUnwindSafe,
<O as ArgminOp>::Hessian: RefUnwindSafe,
<O as ArgminOp>::Jacobian: RefUnwindSafe,
<O as ArgminOp>::Param: RefUnwindSafe,
impl<O> Send for IterState<O> where
<O as ArgminOp>::Float: Send,
<O as ArgminOp>::Hessian: Send,
<O as ArgminOp>::Jacobian: Send,
<O as ArgminOp>::Param: Send,
<O as ArgminOp>::Float: Send,
<O as ArgminOp>::Hessian: Send,
<O as ArgminOp>::Jacobian: Send,
<O as ArgminOp>::Param: Send,
impl<O> Sync for IterState<O> where
<O as ArgminOp>::Float: Sync,
<O as ArgminOp>::Hessian: Sync,
<O as ArgminOp>::Jacobian: Sync,
<O as ArgminOp>::Param: Sync,
<O as ArgminOp>::Float: Sync,
<O as ArgminOp>::Hessian: Sync,
<O as ArgminOp>::Jacobian: Sync,
<O as ArgminOp>::Param: Sync,
impl<O> Unpin for IterState<O> where
<O as ArgminOp>::Float: Unpin,
<O as ArgminOp>::Hessian: Unpin,
<O as ArgminOp>::Jacobian: Unpin,
<O as ArgminOp>::Param: Unpin,
<O as ArgminOp>::Float: Unpin,
<O as ArgminOp>::Hessian: Unpin,
<O as ArgminOp>::Jacobian: Unpin,
<O as ArgminOp>::Param: Unpin,
impl<O> UnwindSafe for IterState<O> where
<O as ArgminOp>::Float: UnwindSafe,
<O as ArgminOp>::Hessian: UnwindSafe,
<O as ArgminOp>::Jacobian: UnwindSafe,
<O as ArgminOp>::Param: UnwindSafe,
<O as ArgminOp>::Float: UnwindSafe,
<O as ArgminOp>::Hessian: UnwindSafe,
<O as ArgminOp>::Jacobian: UnwindSafe,
<O as ArgminOp>::Param: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> SendSyncRefUnwindSafeKV for T where
T: KV + Send + Sync + RefUnwindSafe + ?Sized,
[src]
T: KV + Send + Sync + RefUnwindSafe + ?Sized,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
[src]
T: Send + Sync + UnwindSafe + ?Sized,