Nonlinear Programming by Dimitri P Bertsekas