[][src]Struct optimization_engine::core::panoc::PANOCEngine

pub struct PANOCEngine<'a, GradientType, ConstraintType, CostType> where
    GradientType: Fn(&[f64], &mut [f64]) -> i32,
    CostType: Fn(&[f64], &mut f64) -> i32,
    ConstraintType: Constraint
{ /* fields omitted */ }

Engine for PANOC algorithm

Methods

impl<'a, GradientType, ConstraintType, CostType> PANOCEngine<'a, GradientType, ConstraintType, CostType> where
    GradientType: Fn(&[f64], &mut [f64]) -> i32,
    CostType: Fn(&[f64], &mut f64) -> i32,
    ConstraintType: Constraint
[src]

pub fn new(
    problem: Problem<GradientType, ConstraintType, CostType>,
    cache: &'a mut PANOCCache
) -> PANOCEngine<'a, GradientType, ConstraintType, CostType>
[src]

Construct a new Engine for PANOC

The engine owns a problem specification borrows a mutable reference to a PANOCCache object which is created externally once

Arguments

  • problem problem specification (instance of Problem)
  • cache an instance of PANOCCache

Trait Implementations

impl<'a, GradientType, ConstraintType, CostType> AlgorithmEngine for PANOCEngine<'a, GradientType, ConstraintType, CostType> where
    GradientType: Fn(&[f64], &mut [f64]) -> i32,
    CostType: Fn(&[f64], &mut f64) -> i32,
    ConstraintType: Constraint
[src]

Implementation of the step and init methods of [trait.AlgorithmEngine.html]

fn step(&mut self, u_current: &mut [f64]) -> bool[src]

PANOC step

Performs a step of PANOC, including the line search

Arguments

  • u_current on entry is the current iterate; on exit, it is updated with the next iterate of PANOC

fn init(&mut self, u_current: &mut [f64])[src]

Initialization of PANOC

Computes a number of essential quantities before the start of PANOC iterations

There include the computation of the cost and gradient of the cost at the initial point, the computation of an initial estimation of the Lipschitz constant of the gradient of the cost at the initial point, initial estimates for gamma and sigma, a gradient step and a half step (projected gradient step)

Auto Trait Implementations

impl<'a, GradientType, ConstraintType, CostType> Send for PANOCEngine<'a, GradientType, ConstraintType, CostType> where
    ConstraintType: Send,
    CostType: Send,
    GradientType: Send

impl<'a, GradientType, ConstraintType, CostType> Sync for PANOCEngine<'a, GradientType, ConstraintType, CostType> where
    ConstraintType: Sync,
    CostType: Sync,
    GradientType: Sync

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]