#include <roboptim/core/sys.hh>
#include <roboptim/core/portability.hh>
#include <stdexcept>
#include <boost/mpl/vector.hpp>
#include <coin/IpSmartPtr.hpp>
#include <coin/IpIpoptApplication.hpp>
#include <coin/IpoptConfig.h>
#include "roboptim/core/plugin/ipopt/ipopt-parameters-updater.hh"
#include "roboptim/core/plugin/ipopt/ipopt-common.hh"
Namespaces | |
namespace | roboptim |
Meta-functions, functions and solvers related classes. | |
Defines | |
#define | IPOPT_DEFAULT_LINEAR_SOLVER "mumps" |
#define | SWITCH_ERROR(NAME, ERROR) |
#define | SWITCH_FATAL(NAME, ERROR) |
#define | SWITCH_OK(NAME, CASES) |
#define | MAP_IPOPT_ERRORS(MACRO) |
#define | MAP_IPOPT_FATALS(MACRO) MACRO(Ipopt::NonIpopt_Exception_Thrown, "Non-Ipopt exception thrown") |
#define | MAP_IPOPT_OKS(MACRO) |
#define | DEFINE_PARAMETER(KEY, DESCRIPTION, VALUE) |
#define DEFINE_PARAMETER | ( | KEY, | |
DESCRIPTION, | |||
VALUE | |||
) |
do { \ this->parameters_[KEY].description = DESCRIPTION; \ this->parameters_[KEY].value = VALUE; \ } while (0)
#define IPOPT_DEFAULT_LINEAR_SOLVER "mumps" |
#define MAP_IPOPT_ERRORS | ( | MACRO | ) |
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")
Referenced by roboptim::IpoptSolverCommon< T >::solve().
#define MAP_IPOPT_FATALS | ( | MACRO | ) | MACRO(Ipopt::NonIpopt_Exception_Thrown, "Non-Ipopt exception thrown") |
Referenced by roboptim::IpoptSolverCommon< T >::solve().
#define MAP_IPOPT_OKS | ( | MACRO | ) |
MACRO (Ipopt::Solve_Succeeded, MAP_IPOPT_ERRORS(SWITCH_ERROR); \ MAP_IPOPT_FATALS(SWITCH_FATAL)); \ MACRO (Ipopt::Solved_To_Acceptable_Level, MAP_IPOPT_ERRORS(SWITCH_ERROR); \ MAP_IPOPT_FATALS(SWITCH_FATAL)); \ MACRO (Ipopt::Feasible_Point_Found, MAP_IPOPT_ERRORS(SWITCH_ERROR); \ MAP_IPOPT_FATALS(SWITCH_FATAL)); \ MACRO (Ipopt::User_Requested_Stop, MAP_IPOPT_ERRORS(SWITCH_ERROR); \ MAP_IPOPT_FATALS(SWITCH_FATAL))
Referenced by roboptim::IpoptSolverCommon< T >::solve().
#define SWITCH_ERROR | ( | NAME, | |
ERROR | |||
) |
case NAME: \
break
Referenced by roboptim::IpoptSolverCommon< T >::solve().
#define SWITCH_FATAL | ( | NAME, | |
ERROR | |||
) |
case NAME: \
throw std::runtime_error (ERROR); \
break
Referenced by roboptim::IpoptSolverCommon< T >::solve().
#define SWITCH_OK | ( | NAME, | |
CASES | |||
) |
case NAME: \
{ \
int status = app_->OptimizeTNLP (nlp_); \
switch (status) \
{ \
CASES; \
} \
} \
break
Referenced by roboptim::IpoptSolverCommon< T >::solve().