SIE 645: Nonlinear Optimization