pub struct GradientProjection { /* private fields */ }Expand description
Gradient-based projection for smooth nonlinear constraints
Uses gradient descent to find the closest point satisfying constraints.
Implementations§
Source§impl GradientProjection
impl GradientProjection
Sourcepub fn with_max_iterations(self, max_iter: usize) -> Self
pub fn with_max_iterations(self, max_iter: usize) -> Self
Set maximum iterations
Sourcepub fn with_step_size(self, step: f32) -> Self
pub fn with_step_size(self, step: f32) -> Self
Set step size for gradient descent
Sourcepub fn with_tolerance(self, tol: f32) -> Self
pub fn with_tolerance(self, tol: f32) -> Self
Set convergence tolerance
Sourcepub fn project(
&self,
x: &Array1<f32>,
constraints: &[NonlinearConstraint],
) -> LogicResult<Array1<f32>>
pub fn project( &self, x: &Array1<f32>, constraints: &[NonlinearConstraint], ) -> LogicResult<Array1<f32>>
Project onto constraints using gradient descent
Sourcepub fn project_adaptive(
&self,
x: &Array1<f32>,
constraints: &[NonlinearConstraint],
) -> LogicResult<Array1<f32>>
pub fn project_adaptive( &self, x: &Array1<f32>, constraints: &[NonlinearConstraint], ) -> LogicResult<Array1<f32>>
Project with adaptive step size (line search)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GradientProjection
impl RefUnwindSafe for GradientProjection
impl Send for GradientProjection
impl Sync for GradientProjection
impl Unpin for GradientProjection
impl UnwindSafe for GradientProjection
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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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