# 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

static 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.
Return
the coefficient alpha
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

static 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()

Return
the coefficient alpha
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

void search_Armijo_params_init(armijo_extra_params *p)

Initialize parameters to a default value.

Parameters
• p: parameters to set

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)

Return
the coefficient alpha
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

struct armijo_extra_params
#include <ArmijoSearch.h>

Struct to hold together the extra parameters needed by the Armijo line search.

Public Members

double gamma

Value of the slope coefficient.