$\DeclareMathOperator{\arccosh}{arccosh} \DeclareMathOperator*{\argmin}{arg\,min} \DeclareMathOperator{\Exp}{Exp} \newcommand{\geo}{\gamma_{\overset{\frown}{#1,#2}}} \newcommand{\geoS}{\gamma} \newcommand{\geoD}{\gamma_} \newcommand{\geoL}{\gamma(#2; #1)} \newcommand{\gradM}{\nabla_{\M}} \newcommand{\gradMComp}{\nabla_{\M,#1}} \newcommand{\Grid}{\mathcal G} \DeclareMathOperator{\Log}{Log} \newcommand{\M}{\mathcal M} \newcommand{\N}{\mathcal N} \newcommand{\mat}{\mathbf{#1}} \DeclareMathOperator{\prox}{prox} \newcommand{\PT}{\mathrm{PT}_{#1\to#2}#3} \newcommand{\R}{\mathbb R} \newcommand{\SPD}{\mathcal{P}(#1)} \DeclareMathOperator{\Tr}{Tr} \newcommand{\tT}{\mathrm{T}} \newcommand{\vect}{\mathbf{#1}}$

# step size rule based on the Armijo rule

Determines a step size $s>0$ such that

where $\eta$ is a descent direction, e.g. $\eta = -\nabla F(x)$. where the search is performed by $s^\rho$, $% $ and $c>0$ is a constant. For further details see Definition 4.2.2 in 

### Optional Parameters

Gradient ($\eta$)
if this value is not given, we assume that $\eta=-\nabla F$ is the negative gradient. Otherwise you have to spezify a gradient here
InitialStepSize: ($1$)
initial step size $s$ as starting point for the line search
rho (0.5)
decrease exponent for line search, i.e. we update $s\rightarrow s^\rho$
c ($0.0001$)
constant in front of the inner product.

### Matlab Documentation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
% stepSizeAsrmijo(M,F,x,descentDir) compute the step size by Armijo's rule
%
% INPUT
%   M          : a manifold
%   F          : a functional @(x)
%   x          : the current point
%   descentDir : a descent direction
%
% OPTIONAL
%   Gradient : (descentDir) gradient direction (if descentDir is not -grad)
%    InitialStepSize : (1) initial step size as starting point for search
%    rho     : (0.5) decrease factor x_next = (x)^rho
%    c       : (0.0001) the factor in front of the norm
% ---
% MVIRT | R. Bergmann | 2018-03-15


### References

1. Absil, P-A, Mahony, R and Sepulchre, R (2008). Optimization Algorithms on Matrix Manifolds. Princeton University Press, Princeton and Oxford