Struct argmin::solver::gradientdescent::steepestdescent::SteepestDescent [−][src]
pub struct SteepestDescent<L> { /* fields omitted */ }
Expand description
Steepest descent iteratively takes steps in the direction of the strongest negative gradient. In each iteration, a line search is employed to obtain an appropriate step length.
References:
[0] Jorge Nocedal and Stephen J. Wright (2006). Numerical Optimization. Springer. ISBN 0-387-30303-0.
Implementations
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
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,
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,
Auto Trait Implementations
impl<L> RefUnwindSafe for SteepestDescent<L> where
L: RefUnwindSafe,
impl<L> Send for SteepestDescent<L> where
L: Send,
impl<L> Sync for SteepestDescent<L> where
L: Sync,
impl<L> Unpin for SteepestDescent<L> where
L: Unpin,
impl<L> UnwindSafe for SteepestDescent<L> where
L: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V