27 #ifndef IFOPT_SRC_IFOPT_IPOPT_INCLUDE_IFOPT_IPOPT_H_    28 #define IFOPT_SRC_IFOPT_IPOPT_INCLUDE_IFOPT_IPOPT_H_    35 class IpoptApplication;
    50   using Ptr = std::shared_ptr<IpoptSolver>;
    52   IpoptSolver(
bool rethrow_non_ipopt_exceptions = 
false);
    58   void Solve(
Problem& nlp) 
override;
    63   void SetOption(
const std::string& name, 
const std::string& value);
    64   void SetOption(
const std::string& name, 
int value);
    65   void SetOption(
const std::string& name, 
double value);
    69   double GetTotalWallclockTime ();
 A generic optimization problem with variables, costs and constraints. 
Solver interface implemented by IPOPT and SNOPT. 
An interface to IPOPT, fully hiding its implementation. 
namespace defined by the Ipopt solver. 
std::shared_ptr< Ipopt::IpoptApplication > ipopt_app_
common namespace for all elements in this library. 
std::shared_ptr< Solver > Ptr