File numerics/src/tools/ArmijoSearch.h#
Go to the source code of this file
Armijo type search (linesearch and arcsearch), possibly non-monotone.
Implementation of the Armijo type search. The linesearch version is the most classical one. The arcsearch assumes that the direction of descent is the gradient of the merit function.
Functions
-
double search_Armijo_standalone(int n, double *theta, double preRHS, search_data *ls_data)#
Armijo (non-monotone) search, standalone version: it does not compute the reference value, it is expected as argument (theta)
- Parameters:
n – size of the problem
theta – reference value for the acceptance test
preRHS – pre-computed value for the acceptance test
ls_data – necessary data for the search algorithm
- Returns:
the coefficient alpha
-
static inline double linesearch_Armijo2(int n, double theta, double preRHS, search_data *ls_data)#
Armijo linesearch; this version compute and update the reference value and calls search_Armijo_standalone()
- Parameters:
n – size of the problem
theta – current value of the merit function
preRHS – pre-computed value for the acceptance test
ls_data – necessary data for the search algorithm
- Returns:
the coefficient alpha
-
static inline double arcsearch_Armijo2(int n, double theta, double preRHS, search_data *ls_data)#
Armijo arcsearch; this version compute and update the reference value and calls search_Armijo_standalone().
Warning
this function can be used only if the descent direction is the gradient of the merit function.
- Parameters:
n – size of the problem
theta – current value of the merit function
preRHS – pre-computed value for the acceptance test
ls_data – necessary data for the search algorithm
- Returns:
the coefficient alpha
-
void search_Armijo_params_init(armijo_extra_params *p)#
Initialize parameters to a default value.
- Parameters:
p – parameters to set