pub enum LineSearchAlgorithm {
MoreThuente,
BackTrackingArmijo,
BackTrackingStrongWolfe,
BackTrackingWolfe,
}Expand description
Line search algorithms.
Variants§
MoreThuente
MoreThuente method proposd by More and Thuente. This is the default for regular LBFGS.
BackTrackingArmijo
BackTracking method with the Armijo condition.
The backtracking method finds the step length such that it satisfies the sufficient decrease (Armijo) condition,
- f(x + a * d) <= f(x) + ftol * a * g(x)^T d,
where x is the current point, d is the current search direction, and a is the step length.
BackTrackingStrongWolfe
BackTracking method with strong Wolfe condition.
The backtracking method finds the step length such that it satisfies both the Armijo condition (BacktrackingArmijo) and the following condition,
- |g(x + a * d)^T d| <= gtol * |g(x)^T d|,
where x is the current point, d is the current search direction, and a is the step length.
BackTrackingWolfe
BackTracking method with regular Wolfe condition.
The backtracking method finds the step length such that it satisfies both the Armijo condition (BacktrackingArmijo) and the curvature condition,
- g(x + a * d)^T d >= gtol * g(x)^T d,
where x is the current point, d is the current search direction, and a is the step length.
Trait Implementations§
Source§impl Clone for LineSearchAlgorithm
impl Clone for LineSearchAlgorithm
Source§fn clone(&self) -> LineSearchAlgorithm
fn clone(&self) -> LineSearchAlgorithm
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LineSearchAlgorithm
impl Debug for LineSearchAlgorithm
Source§impl Default for LineSearchAlgorithm
impl Default for LineSearchAlgorithm
Source§impl PartialEq for LineSearchAlgorithm
impl PartialEq for LineSearchAlgorithm
impl Copy for LineSearchAlgorithm
impl StructuralPartialEq for LineSearchAlgorithm
Auto Trait Implementations§
impl Freeze for LineSearchAlgorithm
impl RefUnwindSafe for LineSearchAlgorithm
impl Send for LineSearchAlgorithm
impl Sync for LineSearchAlgorithm
impl Unpin for LineSearchAlgorithm
impl UnwindSafe for LineSearchAlgorithm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more