A nonlinear programming tool