sandialabs / poblano_toolbox

Nonlinear optimization for MATLAB.
https://sandialabs.github.io/poblano_toolbox/
Other
25 stars 14 forks source link

ncg: create test for negative inner product update #5

Open dmdunla opened 5 years ago

dmdunla commented 5 years ago

In all update types except Steepest Descent, a check on the sign of an vector inner product is checked:

                  if gkTgkold > 0
                        bk = ...;
                    else
                        fprintf(1,[mfilename,': warning: bk set to 0\n']);
                        bk = 0;
                    end

Currently, there is no test which reaches the else clause. A function and starting point should be identified which exercises this code.

dmdunla commented 5 years ago

This code is unreachable. Since gkTgkold is the value of gkTgk from the previous iteration, which is the inner product of the gradient with itself, it will never be negative. Also, if gkTgk is 0 then poblano_out will return. So `gkTgkold is always positive.

These check can be removed.