#include <boost/shared_ptr.hpp>#include <boost/mpl/assert.hpp>#include <boost/mpl/at.hpp>#include <boost/mpl/size.hpp>#include <boost/mpl/vector.hpp>#include <roboptim/core/plugin/ipopt/ipopt-td.hh>#include <roboptim/core/plugin/ipopt/ipopt-sparse.hh>#include <roboptim/core/debug.hh>#include <coin/IpIpoptCalculatedQuantities.hpp>#include <coin/IpIpoptData.hpp>#include <coin/IpOrigIpoptNLP.hpp>#include <coin/IpTNLPAdapter.hpp>Namespaces | |
| namespace | roboptim |
Meta-functions, functions and solvers related classes. | |
| namespace | roboptim::detail |
Defines | |
| #define | FILL_RESULT() |
| #define | SWITCH_ERROR(NAME, ERROR) |
| #define | SWITCH_WARNING(NAME, WARNING) |
| #define | MAP_IPOPT_ERRORS(MACRO) |
| #define | MAP_IPOPT_WARNINGS(MACRO) |
Functions | |
| template<typename T , typename F > | |
| void | roboptim::detail::IpoptCheckGradient (const F &, unsigned, Eigen::Map< const Function::vector_t > &, int, T &) |
| template<typename T > | |
| void | roboptim::detail::fillMultipliers (Function::vector_t &multipliers, const Function::value_type *z_L, const Function::value_type *z_U, const Function::value_type *lambda, Function::size_type n, Function::size_type m, const Solver< T > &solver) |
| ROBOPTIM_CORE_IPOPT_PLUGIN_CHECK_GRADIENT. | |
| void | roboptim::detail::jacobianFromGradients (DerivableFunction::matrix_t &jac, const IpoptSolver::problem_t::constraints_t &c, const DerivableFunction::vector_t &x) |
| template<typename T > | |
| Tnlp< T >::size_type | roboptim::detail::computeConstraintsOutputSize (const T &solver) |
| #define FILL_RESULT | ( | ) |
res.x = Eigen::Map<const Function::argument_t> (x, n); \
res.constraints = Eigen::Map<const Function::vector_t> (g, m); \
res.lambda = Eigen::Map<const Function::vector_t> (lambda, m); \
fillMultipliers (res.lambda, z_L, z_U, lambda, n, m, solver_); \
res.value (0) = obj_value
Referenced by roboptim::detail::Tnlp< T >::finalize_solution().
| #define MAP_IPOPT_ERRORS | ( | MACRO | ) |
MACRO(MAXITER_EXCEEDED, "Max iteration exceeded"); \ MACRO(STOP_AT_TINY_STEP, \ "Algorithm proceeds with very little progress"); \ MACRO(LOCAL_INFEASIBILITY, \ "Algorithm converged to a point of local infeasibility"); \ MACRO(DIVERGING_ITERATES, "Iterate diverges"); \ MACRO(RESTORATION_FAILURE, "Restoration phase failed"); \ MACRO(ERROR_IN_STEP_COMPUTATION, \ "Unrecoverable error while Ipopt tried to compute" \ " the search direction"); \ MACRO(INVALID_NUMBER_DETECTED, \ "Ipopt received an invalid number"); \ MACRO(INTERNAL_ERROR, "Unknown internal error"); \ MACRO(TOO_FEW_DEGREES_OF_FREEDOM, "Two few degrees of freedom"); \ MACRO(INVALID_OPTION, "Invalid option"); \ MACRO(OUT_OF_MEMORY, "Out of memory"); \ MACRO(CPUTIME_EXCEEDED, "CPU time exceeded")
Referenced by roboptim::detail::Tnlp< T >::finalize_solution().
| #define MAP_IPOPT_WARNINGS | ( | MACRO | ) |
MACRO(USER_REQUESTED_STOP, "User-requested stop"); \ MACRO(STOP_AT_ACCEPTABLE_POINT, "Acceptable point")
Referenced by roboptim::detail::Tnlp< T >::finalize_solution().
| #define SWITCH_ERROR | ( | NAME, | |
| ERROR | |||
| ) |
case NAME: \
{ \
Result res (n, 1); \
FILL_RESULT (); \
solver_.result_ = SolverError (ERROR, res); \
} \
break
Referenced by roboptim::detail::Tnlp< T >::finalize_solution().
| #define SWITCH_WARNING | ( | NAME, | |
| WARNING | |||
| ) |
case NAME: \
{ \
ResultWithWarnings res (n, 1); \
FILL_RESULT (); \
res.warnings.push_back (SolverWarning (WARNING)); \
solver_.result_ = res; \
break; \
} \
break
Referenced by roboptim::detail::Tnlp< T >::finalize_solution().