perform a subgradient method $x_{k+1} = \mathrm{retr}(x_k, s_k∂F(x_k))$,

where $\mathrm{retr}$ is a retraction, $s_k$ can be specified as a function but is usually set to a constant value. Though the subgradient might be set valued, the argument ∂F should always return one element from the subgradient.

Input

• M – a manifold $\mathcal M$
• F – a cost function $F\colon\mathcal M\to\mathbb R$ to minimize
• ∂F: the (sub)gradient $\partial F\colon\mathcal M\to T\mathcal M$ of F restricted to always only returning one value/element from the subgradient
• x – an initial value $x\in\mathcal M$

Optional

... and the ones that are passed to decorateOptions for decorators.

Output

• xOpt – the resulting (approximately critical) point of gradientDescent

OR

• options - the options returned by the solver (see returnOptions)
source