[][src]Trait argmin::prelude::ArgminLineSearch

pub trait ArgminLineSearch: ArgminSolver {
    fn set_initial_parameter(&mut self, param: Self::Param);
fn set_search_direction(&mut self, direction: Self::Param);
fn set_initial_alpha(&mut self, step_length: f64) -> Result<(), Error>;
fn set_initial_cost(&mut self, cost: f64);
fn set_initial_gradient(&mut self, grad: Self::Param);
fn calc_initial_cost(&mut self) -> Result<(), Error>;
fn calc_initial_gradient(&mut self) -> Result<(), Error>; }

Defines a common interface to line search methods. Requires that ArgminSolver is implemented for the line search method as well.

The cost function value and the gradient at the starting point can either be provided (set_initial_cost and set_initial_gradient) or they can be computed using the operator from the implementation of ArgminSolver (see calc_initial_cost and calc_initial_gradient). The former is convenient if cost and gradient at the starting point are already known for some reason (i.e. the solver which uses the line search has already computed cost and gradient) and avoids unneccessary computation of those values.

Required methods

fn set_initial_parameter(&mut self, param: Self::Param)

Set the initial parameter (starting point)

fn set_search_direction(&mut self, direction: Self::Param)

Set the search direction

fn set_initial_alpha(&mut self, step_length: f64) -> Result<(), Error>

Set the initial step length

fn set_initial_cost(&mut self, cost: f64)

Set the cost function value at the starting point as opposed to computing it (see calc_initial_cost)

fn set_initial_gradient(&mut self, grad: Self::Param)

Set the gradient at the starting point as opposed to computing it (see calc_initial_gradient)

fn calc_initial_cost(&mut self) -> Result<(), Error>

calculate the initial cost function value using an operator as opposed to setting it manually (see set_initial_cost)

fn calc_initial_gradient(&mut self) -> Result<(), Error>

calculate the initial gradient using an operator as opposed to setting it manually (see set_initial_gradient)

Loading content...

Implementors

impl<O> ArgminLineSearch for BacktrackingLineSearch<O> where
    O: ArgminOp<Output = f64>,
    <O as ArgminOp>::Param: ArgminSub<<O as ArgminOp>::Param, <O as ArgminOp>::Param> + ArgminDot<<O as ArgminOp>::Param, f64> + ArgminScaledAdd<<O as ArgminOp>::Param, f64, <O as ArgminOp>::Param>, 
[src]

fn set_search_direction(&mut self, search_direction: <O as ArgminOp>::Param)[src]

Set search direction

fn set_initial_parameter(&mut self, param: <O as ArgminOp>::Param)[src]

Set initial parameter

fn set_initial_alpha(&mut self, alpha: f64) -> Result<(), Error>[src]

Set initial alpha value

fn set_initial_cost(&mut self, init_cost: f64)[src]

Set initial cost function value

fn set_initial_gradient(&mut self, init_grad: <O as ArgminOp>::Param)[src]

Set initial gradient

fn calc_initial_cost(&mut self) -> Result<(), Error>[src]

Calculate initial cost function value

fn calc_initial_gradient(&mut self) -> Result<(), Error>[src]

Calculate initial cost function value

impl<O> ArgminLineSearch for HagerZhangLineSearch<O> where
    O: ArgminOp<Output = f64>,
    <O as ArgminOp>::Param: ArgminSub<<O as ArgminOp>::Param, <O as ArgminOp>::Param> + ArgminDot<<O as ArgminOp>::Param, f64> + ArgminScaledAdd<<O as ArgminOp>::Param, f64, <O as ArgminOp>::Param>, 
[src]

fn set_search_direction(&mut self, search_direction: <O as ArgminOp>::Param)[src]

Set search direction

fn set_initial_parameter(&mut self, param: <O as ArgminOp>::Param)[src]

Set initial parameter

fn set_initial_cost(&mut self, init_cost: f64)[src]

Set initial cost function value

fn set_initial_gradient(&mut self, init_grad: <O as ArgminOp>::Param)[src]

Set initial gradient

fn calc_initial_cost(&mut self) -> Result<(), Error>[src]

Calculate initial cost function value

fn calc_initial_gradient(&mut self) -> Result<(), Error>[src]

Calculate initial cost function value

fn set_initial_alpha(&mut self, alpha: f64) -> Result<(), Error>[src]

Set initial alpha value

impl<O> ArgminLineSearch for MoreThuenteLineSearch<O> where
    O: ArgminOp<Output = f64>,
    <O as ArgminOp>::Param: ArgminSub<<O as ArgminOp>::Param, <O as ArgminOp>::Param> + ArgminDot<<O as ArgminOp>::Param, f64> + ArgminScaledAdd<<O as ArgminOp>::Param, f64, <O as ArgminOp>::Param>, 
[src]

fn set_search_direction(&mut self, search_direction: <O as ArgminOp>::Param)[src]

Set search direction

fn set_initial_parameter(&mut self, param: <O as ArgminOp>::Param)[src]

Set initial parameter

fn set_initial_cost(&mut self, init_cost: f64)[src]

Set initial cost function value

fn set_initial_gradient(&mut self, init_grad: <O as ArgminOp>::Param)[src]

Set initial gradient

fn calc_initial_cost(&mut self) -> Result<(), Error>[src]

Calculate initial cost function value

fn calc_initial_gradient(&mut self) -> Result<(), Error>[src]

Calculate initial cost function value

fn set_initial_alpha(&mut self, alpha: f64) -> Result<(), Error>[src]

Set initial alpha value

Loading content...