27 #ifndef IFOPT_SRC_IFOPT_CORE_INCLUDE_IFOPT_SOLVER_H_    28 #define IFOPT_SRC_IFOPT_CORE_INCLUDE_IFOPT_SOLVER_H_    50   using Ptr = std::shared_ptr<Solver>;
 A generic optimization problem with variables, costs and constraints. 
Solver interface implemented by IPOPT and SNOPT. 
common namespace for all elements in this library. 
std::shared_ptr< Solver > Ptr
virtual void Solve(Problem &nlp)=0
Uses a specific solver (IPOPT, SNOPT) to solve the NLP. 
virtual ~Solver()=default
int GetReturnStatus() const
Get the return status for the optimization.