cher-Reeves_ [1]:
%
% $$\beta_{i+1} = \frac{g_{i+1}^T {-} g_{i+1}}{g_{i}^T g_{i}} $$ 
%
% _Polak-Ribiere_ [4]:
%
% $$\beta_{i+1} = \frac{g_{i+1}^T (g_{i+1} {-} g_{i})}{g_{i}^T g_{i}} $$
%
% _Hestenes-Stiefel_ [2]:
%
% $$\beta_{i+1} = \frac{g_{i+1}^T (g_{i+1} {-} g_{i})}{p_i^T (g_{i+1} {-} g_{i})} $$
%
%% 
% *Negative update coefficients*
%
% In cases where the update coefficient $\beta_{i+1} < 0$, it is 
% set to $0$ to avoid directions that are not descent directions [3]. 
%% 
% *Restart procedures*
%
% Th