Add IPOPT support to NonlinearProgram