argmin::core

Struct IterState

Source
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>

Source

pub fn new(param: O::Param) -> Self

Create new IterState from param

Source

pub fn param(&mut self, param: O::Param) -> &mut Self

Set parameter vector. This shifts the stored parameter vector to the previous parameter vector.

Source

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.

Source

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.

Source

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.

Source

pub fn grad(&mut self, grad: O::Param) -> &mut Self

Set gradient. This shifts the stored gradient to the previous gradient.

Source

pub fn hessian(&mut self, hessian: O::Hessian) -> &mut Self

Set Hessian. This shifts the stored Hessian to the previous Hessian.

Source

pub fn jacobian(&mut self, jacobian: O::Jacobian) -> &mut Self

Set Jacobian. This shifts the stored Jacobian to the previous Jacobian.

Source

pub fn population(&mut self, population: Vec<(O::Param, O::Float)>) -> &mut Self

Set population

Source

pub fn target_cost(&mut self, target_cost: O::Float) -> &mut Self

Set target cost value

Source

pub fn max_iters(&mut self, max_iters: u64) -> &mut Self

Set maximum number of iterations

Source

pub fn last_best_iter(&mut self, last_best_iter: u64) -> &mut Self

Set iteration number where the previous best parameter vector was found

Source

pub fn termination_reason( &mut self, termination_reason: TerminationReason, ) -> &mut Self

Set termination_reason

Source

pub fn time(&mut self, time: Duration) -> &mut Self

Set time required so far

Source

pub fn get_param(&self) -> O::Param

Returns current parameter vector

Source

pub fn get_prev_param(&self) -> O::Param

Returns previous parameter vector

Source

pub fn get_best_param(&self) -> O::Param

Returns best parameter vector

Source

pub fn get_prev_best_param(&self) -> O::Param

Returns previous best parameter vector

Source

pub fn get_cost(&self) -> O::Float

Returns current cost function value

Source

pub fn get_prev_cost(&self) -> O::Float

Returns previous cost function value

Source

pub fn get_best_cost(&self) -> O::Float

Returns current best cost function value

Source

pub fn get_prev_best_cost(&self) -> O::Float

Returns previous best cost function value

Source

pub fn get_target_cost(&self) -> O::Float

Returns target cost

Source

pub fn get_cost_func_count(&self) -> u64

Returns current cost function evaluation count

Source

pub fn get_grad_func_count(&self) -> u64

Returns current gradient function evaluation count

Source

pub fn get_hessian_func_count(&self) -> u64

Returns current Hessian function evaluation count

Source

pub fn get_jacobian_func_count(&self) -> u64

Returns current Jacobian function evaluation count

Source

pub fn get_modify_func_count(&self) -> u64

Returns current Modify function evaluation count

Source

pub fn get_last_best_iter(&self) -> u64

Returns iteration number where the last best parameter vector was found

Source

pub fn get_termination_reason(&self) -> TerminationReason

Get termination_reason

Source

pub fn get_time(&self) -> Duration

Get time required so far

Source

pub fn get_grad(&self) -> Option<O::Param>

Returns gradient

Source

pub fn get_prev_grad(&self) -> Option<O::Param>

Returns previous gradient

Source

pub fn get_hessian(&self) -> Option<O::Hessian>

Returns current Hessian

Source

pub fn get_prev_hessian(&self) -> Option<O::Hessian>

Returns previous Hessian

Source

pub fn get_jacobian(&self) -> Option<O::Jacobian>

Returns current Jacobian

Source

pub fn get_prev_jacobian(&self) -> Option<O::Jacobian>

Returns previous Jacobian

Source

pub fn get_iter(&self) -> u64

Returns current number of iterations

Source

pub fn get_max_iters(&self) -> u64

Returns maximum number of iterations

Source

pub fn get_population(&self) -> Option<&Vec<(O::Param, O::Float)>>

Returns population

Source

pub fn increment_iter(&mut self)

Increment the number of iterations by one

Source

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.

Source

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.

Source

pub fn increment_cost_func_count(&mut self, num: u64)

Increment cost function evaluation count by num

Source

pub fn increment_grad_func_count(&mut self, num: u64)

Increment gradient function evaluation count by num

Source

pub fn increment_hessian_func_count(&mut self, num: u64)

Increment Hessian function evaluation count by num

Source

pub fn increment_jacobian_func_count(&mut self, num: u64)

Increment Jacobian function evaluation count by num

Source

pub fn increment_modify_func_count(&mut self, num: u64)

Increment modify function evaluation count by num

Source

pub fn new_best(&mut self)

Indicate that a new best parameter vector was found

Source

pub fn is_best(&self) -> bool

Returns whether the current parameter vector is also the best parameter vector found so far.

Source

pub fn terminated(&self) -> bool

Return whether the algorithm has terminated or not

Trait Implementations§

Source§

impl<O: Clone + ArgminOp> Clone for IterState<O>
where O::Param: Clone, O::Float: Clone, O::Hessian: Clone, O::Jacobian: Clone,

Source§

fn clone(&self) -> IterState<O>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<O: Debug + ArgminOp> Debug for IterState<O>
where O::Param: Debug, O::Float: Debug, O::Hessian: Debug, O::Jacobian: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<O: ArgminOp> Default for IterState<O>
where O::Param: Default,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de, O: ArgminOp> Deserialize<'de> for IterState<O>
where O::Param: Deserialize<'de>, O::Float: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<O: ArgminOp> KV for IterState<O>

Source§

fn serialize( &self, _record: &Record<'_>, serializer: &mut dyn Serializer, ) -> Result

Serialize self into Serializer Read more
Source§

impl<O: ArgminOp> Serialize for IterState<O>
where O::Param: Serialize, O::Float: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<O> Freeze for IterState<O>
where <O as ArgminOp>::Param: Freeze, <O as ArgminOp>::Float: Freeze, <O as ArgminOp>::Hessian: Freeze, <O as ArgminOp>::Jacobian: Freeze,

§

impl<O> RefUnwindSafe for IterState<O>

§

impl<O> Send for IterState<O>
where <O as ArgminOp>::Param: Send, <O as ArgminOp>::Float: Send, <O as ArgminOp>::Hessian: Send, <O as ArgminOp>::Jacobian: Send,

§

impl<O> Sync for IterState<O>
where <O as ArgminOp>::Param: Sync, <O as ArgminOp>::Float: Sync, <O as ArgminOp>::Hessian: Sync, <O as ArgminOp>::Jacobian: Sync,

§

impl<O> Unpin for IterState<O>
where <O as ArgminOp>::Param: Unpin, <O as ArgminOp>::Float: Unpin, <O as ArgminOp>::Hessian: Unpin, <O as ArgminOp>::Jacobian: Unpin,

§

impl<O> UnwindSafe for IterState<O>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> SendSyncRefUnwindSafeKV for T
where T: KV + Send + Sync + RefUnwindSafe + ?Sized,

Source§

impl<T> SendSyncUnwindSafe for T
where T: Send + Sync + UnwindSafe + ?Sized,