MACRO (Ipopt::Infeasible_Problem_Detected,        \
   "Infeasible problem detected");        \
  MACRO (Ipopt::Search_Direction_Becomes_Too_Small,     \
   "Search direction too small");         \
  MACRO (Ipopt::Diverging_Iterates, "Diverging iterates");    \
  MACRO (Ipopt::Maximum_Iterations_Exceeded,        \
   "Maximum iterations exceeded");        \
  MACRO (Ipopt::Restoration_Failed, "Restoration failed");    \
  MACRO (Ipopt::Error_In_Step_Computation, "Error in step computation"); \
  MACRO (Ipopt::Not_Enough_Degrees_Of_Freedom,        \
   "Not enough degrees of freedom");        \
  MACRO (Ipopt::Invalid_Problem_Definition,       \
   "Invalid problem definition");         \
  MACRO (Ipopt::Invalid_Option, "Invalid option");      \
  MACRO (Ipopt::Invalid_Number_Detected, "Invalid number detected");  \
  MACRO (Ipopt::Unrecoverable_Exception, "Unrecoverable exception");  \
  MACRO (Ipopt::Insufficient_Memory, "Insufficient memory");    \
  MACRO (Ipopt::Internal_Error, "Internal error");      \
  MACRO (Ipopt::Maximum_CpuTime_Exceeded, "Maximum CPU time exceeded")