Trait argmin::core::Solver [−][src]
Solver
Every solver needs to implement this trait.
Associated Constants
Loading content...Required methods
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
Computes one iteration of the algorithm.
Provided methods
fn init(
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
Initializes the algorithm
This is executed before any iterations are performed. It can be used to perform precomputations. The default implementation corresponds to doing nothing.
fn terminate_internal(&mut self, state: &IterState<O>) -> TerminationReason
[src]
Checks whether basic termination reasons apply.
Terminate if
- algorithm was terminated somewhere else in the Executor
- iteration count exceeds maximum number of iterations
- cost is lower than target cost
This can be overwritten in a Solver
implementation; however it is not advised.
fn terminate(&mut self, _state: &IterState<O>) -> TerminationReason
[src]
Checks whether the algorithm must be terminated
Implementors
impl<O, B, R, F> Solver<O> for SR1TrustRegion<B, R, F> where
O: ArgminOp<Output = F, Hessian = B, Float = F>,
O::Param: Debug + Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminNorm<O::Float> + ArgminZeroLike + ArgminMul<F, O::Param>,
O::Hessian: Debug + Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<F, O::Hessian>,
R: ArgminTrustRegion<F> + Solver<OpWrapper<O>>,
F: ArgminFloat + ArgminNorm<O::Float>,
[src]
O: ArgminOp<Output = F, Hessian = B, Float = F>,
O::Param: Debug + Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminNorm<O::Float> + ArgminZeroLike + ArgminMul<F, O::Param>,
O::Hessian: Debug + Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<F, O::Hessian>,
R: ArgminTrustRegion<F> + Solver<OpWrapper<O>>,
F: ArgminFloat + ArgminNorm<O::Float>,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, F> Solver<O> for Brent<F> where
O: ArgminOp<Param = F, Output = F, Float = F>,
F: ArgminFloat,
[src]
O: ArgminOp<Param = F, Output = F, Float = F>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<O, F> Solver<O> for GaussNewton<F> where
O: ArgminOp<Float = F>,
O::Param: ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,
O::Output: ArgminNorm<O::Float>,
O::Jacobian: ArgminTranspose<O::Jacobian> + ArgminInv<O::Jacobian> + ArgminDot<O::Jacobian, O::Jacobian> + ArgminDot<O::Output, O::Param> + ArgminDot<O::Param, O::Param>,
F: ArgminFloat,
[src]
O: ArgminOp<Float = F>,
O::Param: ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,
O::Output: ArgminNorm<O::Float>,
O::Jacobian: ArgminTranspose<O::Jacobian> + ArgminInv<O::Jacobian> + ArgminDot<O::Jacobian, O::Jacobian> + ArgminDot<O::Output, O::Param> + ArgminDot<O::Param, O::Param>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, F> Solver<O> for GoldenSectionSearch<F> where
O: ArgminOp<Output = F, Param = F, Float = F>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Param = F, Float = F>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<O, F> Solver<O> for Landweber<F> where
O: ArgminOp<Float = F>,
O::Param: ArgminScaledSub<O::Param, O::Float, O::Param>,
F: ArgminFloat,
[src]
O: ArgminOp<Float = F>,
O::Param: ArgminScaledSub<O::Param, O::Float, O::Param>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<O, F> Solver<O> for Newton<F> where
O: ArgminOp<Float = F>,
O::Param: ArgminScaledSub<O::Param, O::Float, O::Param>,
O::Hessian: ArgminInv<O::Hessian> + ArgminDot<O::Param, O::Param>,
F: ArgminFloat,
[src]
O: ArgminOp<Float = F>,
O::Param: ArgminScaledSub<O::Param, O::Float, O::Param>,
O::Hessian: ArgminInv<O::Hessian> + ArgminDot<O::Param, O::Param>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<O, F> Solver<O> for SimulatedAnnealing<F> where
O: ArgminOp<Output = F, Float = F>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Float = F>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
Perform one iteration of SA algorithm
fn terminate(&mut self, _state: &IterState<O>) -> TerminationReason
[src]
impl<O, F> Solver<O> for CauchyPoint<F> where
O: ArgminOp<Output = F, Float = F>,
O::Param: Debug + Clone + Serialize + ArgminMul<O::Float, O::Param> + ArgminWeightedDot<O::Param, F, O::Hessian> + ArgminNorm<O::Float>,
O::Hessian: Clone + Serialize,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Float = F>,
O::Param: Debug + Clone + Serialize + ArgminMul<O::Float, O::Param> + ArgminWeightedDot<O::Param, F, O::Hessian> + ArgminNorm<O::Float>,
O::Hessian: Clone + Serialize,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, F> Solver<O> for Dogleg<F> where
O: ArgminOp<Output = F, Float = F>,
O::Param: Debug + ArgminMul<F, O::Param> + ArgminWeightedDot<O::Param, O::Float, O::Hessian> + ArgminNorm<F> + ArgminDot<O::Param, O::Float> + ArgminAdd<O::Param, O::Param> + ArgminSub<O::Param, O::Param>,
O::Hessian: ArgminInv<O::Hessian> + ArgminDot<O::Param, O::Param>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Float = F>,
O::Param: Debug + ArgminMul<F, O::Param> + ArgminWeightedDot<O::Param, O::Float, O::Hessian> + ArgminNorm<F> + ArgminDot<O::Param, O::Float> + ArgminAdd<O::Param, O::Param> + ArgminSub<O::Param, O::Param>,
O::Hessian: ArgminInv<O::Hessian> + ArgminDot<O::Param, O::Param>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, L, F> Solver<O> for GaussNewtonLS<L, F> where
O: ArgminOp<Float = F>,
O::Param: Debug + ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,
O::Output: ArgminNorm<O::Float>,
O::Jacobian: ArgminTranspose<O::Jacobian> + ArgminInv<O::Jacobian> + ArgminDot<O::Jacobian, O::Jacobian> + ArgminDot<O::Output, O::Param> + ArgminDot<O::Param, O::Param>,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<LineSearchOP<O>>>,
F: ArgminFloat,
[src]
O: ArgminOp<Float = F>,
O::Param: Debug + ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,
O::Output: ArgminNorm<O::Float>,
O::Jacobian: ArgminTranspose<O::Jacobian> + ArgminInv<O::Jacobian> + ArgminDot<O::Jacobian, O::Jacobian> + ArgminDot<O::Output, O::Param> + ArgminDot<O::Param, O::Param>,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<LineSearchOP<O>>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, L, F> Solver<O> for SteepestDescent<L> where
O: ArgminOp<Output = F, Float = F>,
O::Param: Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminMul<O::Float, O::Param> + ArgminNorm<O::Float>,
O::Hessian: Default,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Float = F>,
O::Param: Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminMul<O::Float, O::Param> + ArgminNorm<O::Float>,
O::Hessian: Default,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<O, L, F> Solver<O> for NewtonCG<L, F> where
O: ArgminOp<Output = F, Float = F>,
O::Param: Send + Sync + Clone + Serialize + Default + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminMul<F, O::Param> + ArgminConj + ArgminZeroLike + ArgminNorm<O::Float>,
O::Hessian: Send + Sync + Default + Clone + Serialize + ArgminInv<O::Hessian> + ArgminDot<O::Param, O::Param>,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat + Default + ArgminDiv<O::Float, O::Float> + ArgminNorm<O::Float> + ArgminConj,
[src]
O: ArgminOp<Output = F, Float = F>,
O::Param: Send + Sync + Clone + Serialize + Default + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminMul<F, O::Param> + ArgminConj + ArgminZeroLike + ArgminNorm<O::Float>,
O::Hessian: Send + Sync + Default + Clone + Serialize + ArgminInv<O::Hessian> + ArgminDot<O::Param, O::Param>,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat + Default + ArgminDiv<O::Float, O::Float> + ArgminNorm<O::Float> + ArgminConj,
const NAME: &'static str
[src]
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, L, H, F> Solver<O> for BFGS<L, H, F> where
O: ArgminOp<Output = F, Hessian = H, Float = F>,
O::Param: Debug + Default + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param>,
O::Hessian: Clone + Default + Debug + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<O::Float, O::Hessian> + ArgminTranspose<O::Hessian> + ArgminEye,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Hessian = H, Float = F>,
O::Param: Debug + Default + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param>,
O::Hessian: Clone + Default + Debug + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<O::Float, O::Hessian> + ArgminTranspose<O::Hessian> + ArgminEye,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, L, H, F> Solver<O> for DFP<L, H, F> where
O: ArgminOp<Output = F, Hessian = H, Float = F>,
O::Param: Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminScaledAdd<O::Param, F, O::Param> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param> + ArgminTranspose<O::Param>,
O::Hessian: Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<F, O::Hessian> + ArgminTranspose<O::Hessian> + ArgminEye,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Hessian = H, Float = F>,
O::Param: Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminScaledAdd<O::Param, F, O::Param> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param> + ArgminTranspose<O::Param>,
O::Hessian: Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<F, O::Hessian> + ArgminTranspose<O::Hessian> + ArgminEye,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, L, H, F> Solver<O> for SR1<L, H, F> where
O: ArgminOp<Output = F, Hessian = H, Float = F>,
O::Param: Debug + Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param>,
O::Hessian: Debug + Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<F, O::Hessian>,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Hessian = H, Float = F>,
O::Param: Debug + Clone + Default + Serialize + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminDot<O::Param, O::Hessian> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param>,
O::Hessian: Debug + Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Hessian, O::Hessian> + ArgminDot<O::Param, O::Param> + ArgminDot<O::Hessian, O::Hessian> + ArgminAdd<O::Hessian, O::Hessian> + ArgminMul<F, O::Hessian>,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, L, P, F> Solver<O> for LBFGS<L, P, F> where
O: ArgminOp<Param = P, Output = F, Float = F>,
O::Param: Clone + Serialize + DeserializeOwned + Debug + Default + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param>,
O::Hessian: Clone + Default + Serialize + DeserializeOwned,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
[src]
O: ArgminOp<Param = P, Output = F, Float = F>,
O::Param: Clone + Serialize + DeserializeOwned + Debug + Default + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminNorm<O::Float> + ArgminMul<O::Float, O::Param>,
O::Hessian: Clone + Default + Serialize + DeserializeOwned,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, P, F> Solver<O> for NelderMead<P, F> where
O: ArgminOp<Output = F, Param = P, Float = F>,
P: Clone + Serialize + DeserializeOwned + ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,
F: ArgminFloat + Sum<O::Float>,
[src]
O: ArgminOp<Output = F, Param = P, Float = F>,
P: Clone + Serialize + DeserializeOwned + ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,
F: ArgminFloat + Sum<O::Float>,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, _state: &IterState<O>) -> TerminationReason
[src]
impl<O, P, F> Solver<O> for ParticleSwarm<P, F> where
O: ArgminOp<Output = F, Param = P, Float = F>,
O::Param: Position<F> + DeserializeOwned + Serialize,
O::Hessian: Clone + Default,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Param = P, Float = F>,
O::Param: Position<F> + DeserializeOwned + Serialize,
O::Hessian: Clone + Default,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
_op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
Perform one iteration of algorithm
impl<O, P, L, B, F> Solver<O> for NonlinearConjugateGradient<P, L, B, F> where
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminMul<F, O::Param> + ArgminNorm<O::Float>,
O::Hessian: Default,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
B: ArgminNLCGBetaUpdate<O::Param, O::Float>,
F: ArgminFloat,
[src]
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Default + Serialize + DeserializeOwned + ArgminSub<O::Param, O::Param> + ArgminDot<O::Param, O::Float> + ArgminScaledAdd<O::Param, O::Float, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminMul<F, O::Param> + ArgminNorm<O::Float>,
O::Hessian: Default,
L: Clone + ArgminLineSearch<O::Param, O::Float> + Solver<OpWrapper<O>>,
B: ArgminNLCGBetaUpdate<O::Param, O::Float>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<O, P, L, F> Solver<O> for BacktrackingLineSearch<P, L, F> where
P: Clone + Default + Serialize + DeserializeOwned + ArgminSub<P, P> + ArgminDot<P, F> + ArgminScaledAdd<P, F, P>,
O: ArgminOp<Param = P, Output = F, Float = F>,
L: LineSearchCondition<P, F>,
F: ArgminFloat,
[src]
P: Clone + Default + Serialize + DeserializeOwned + ArgminSub<P, P> + ArgminDot<P, F> + ArgminScaledAdd<P, F, P>,
O: ArgminOp<Param = P, Output = F, Float = F>,
L: LineSearchCondition<P, F>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<O, R, F> Solver<O> for TrustRegion<R, F> where
O: ArgminOp<Output = F, Float = F>,
O::Param: Default + Clone + Debug + Serialize + ArgminMul<F, O::Param> + ArgminWeightedDot<O::Param, F, O::Hessian> + ArgminNorm<F> + ArgminDot<O::Param, F> + ArgminAdd<O::Param, O::Param> + ArgminSub<O::Param, O::Param> + ArgminZeroLike,
O::Hessian: Default + Clone + Debug + Serialize + ArgminDot<O::Param, O::Param>,
R: ArgminTrustRegion<F> + Solver<OpWrapper<O>>,
F: ArgminFloat,
[src]
O: ArgminOp<Output = F, Float = F>,
O::Param: Default + Clone + Debug + Serialize + ArgminMul<F, O::Param> + ArgminWeightedDot<O::Param, F, O::Hessian> + ArgminNorm<F> + ArgminDot<O::Param, F> + ArgminAdd<O::Param, O::Param> + ArgminSub<O::Param, O::Param> + ArgminZeroLike,
O::Hessian: Default + Clone + Debug + Serialize + ArgminDot<O::Param, O::Param>,
R: ArgminTrustRegion<F> + Solver<OpWrapper<O>>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, _state: &IterState<O>) -> TerminationReason
[src]
impl<P, O, F> Solver<O> for HagerZhangLineSearch<P, F> where
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Default + Serialize + DeserializeOwned + ArgminSub<P, P> + ArgminDot<P, F> + ArgminScaledAdd<P, F, P>,
F: ArgminFloat,
[src]
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Default + Serialize + DeserializeOwned + ArgminSub<P, P> + ArgminDot<P, F> + ArgminScaledAdd<P, F, P>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, _state: &IterState<O>) -> TerminationReason
[src]
impl<P, O, F> Solver<O> for MoreThuenteLineSearch<P, F> where
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Serialize + DeserializeOwned + ArgminSub<P, P> + ArgminDot<P, F> + ArgminScaledAdd<P, F, P>,
F: ArgminFloat,
[src]
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Serialize + DeserializeOwned + ArgminSub<P, P> + ArgminDot<P, F> + ArgminScaledAdd<P, F, P>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
op: &mut OpWrapper<O>,
_state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
impl<P, O, F> Solver<O> for Steihaug<P, F> where
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Serialize + DeserializeOwned + Default + ArgminMul<F, P> + ArgminWeightedDot<P, F, O::Hessian> + ArgminNorm<F> + ArgminDot<P, F> + ArgminAdd<P, P> + ArgminSub<P, P> + ArgminZeroLike,
O::Hessian: ArgminDot<P, P>,
F: ArgminFloat,
[src]
O: ArgminOp<Param = P, Output = F, Float = F>,
P: Clone + Serialize + DeserializeOwned + Default + ArgminMul<F, P> + ArgminWeightedDot<P, F, O::Hessian> + ArgminNorm<F> + ArgminDot<P, F> + ArgminAdd<P, P> + ArgminSub<P, P> + ArgminZeroLike,
O::Hessian: ArgminDot<P, P>,
F: ArgminFloat,
const NAME: &'static str
[src]
fn init(
&mut self,
_op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
[src]
&mut self,
_op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<Option<ArgminIterData<O>>, Error>
fn next_iter(
&mut self,
_op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
[src]
&mut self,
_op: &mut OpWrapper<O>,
state: &IterState<O>
) -> Result<ArgminIterData<O>, Error>
fn terminate(&mut self, state: &IterState<O>) -> TerminationReason
[src]
impl<P, O, S, F> Solver<O> for ConjugateGradient<P, S> where
O: ArgminOp<Param = P, Output = P, Float = F>,
P: Clone + Serialize + DeserializeOwned + ArgminDot<O::Param, S> + ArgminSub<O::Param, O::Param> + ArgminScaledAdd<O::Param, S, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminConj + ArgminMul<O::Float, O::Param>,
S: Debug + ArgminDiv<S, S> + ArgminNorm<O::Float> + ArgminConj,
F: ArgminFloat,
[src]
O: ArgminOp<Param = P, Output = P, Float = F>,
P: Clone + Serialize + DeserializeOwned + ArgminDot<O::Param, S> + ArgminSub<O::Param, O::Param> + ArgminScaledAdd<O::Param, S, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminConj + ArgminMul<O::Float, O::Param>,
S: Debug + ArgminDiv<S, S> + ArgminNorm<O::Float> + ArgminConj,
F: ArgminFloat,