pub struct FISTASolver {
pub lipschitz: f64,
pub max_iter: usize,
pub tol: f64,
}Expand description
FISTA: Fast Iterative Shrinkage-Thresholding Algorithm.
Minimizes f(x) + g(x) where f is smooth (L-Lipschitz gradient) and g has a cheap proximal operator. Achieves O(1/k²) convergence.
Fields§
§lipschitz: f64Lipschitz constant L of ∇f.
max_iter: usizeMaximum number of iterations.
tol: f64Convergence tolerance on successive iterates.
Implementations§
Source§impl FISTASolver
impl FISTASolver
Sourcepub fn minimize<F, G>(
&self,
smooth: &F,
regularizer: &G,
x0: &[f64],
) -> (Vec<f64>, usize)where
F: ConvexFunction,
G: ProxableFunction,
pub fn minimize<F, G>(
&self,
smooth: &F,
regularizer: &G,
x0: &[f64],
) -> (Vec<f64>, usize)where
F: ConvexFunction,
G: ProxableFunction,
Run FISTA to minimize smooth + regularizer.
Returns (x_star, iterations).
Trait Implementations§
Source§impl Clone for FISTASolver
impl Clone for FISTASolver
Source§fn clone(&self) -> FISTASolver
fn clone(&self) -> FISTASolver
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FISTASolver
impl RefUnwindSafe for FISTASolver
impl Send for FISTASolver
impl Sync for FISTASolver
impl Unpin for FISTASolver
impl UnsafeUnpin for FISTASolver
impl UnwindSafe for FISTASolver
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