Drake
gurobiQP.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Eigen/Dense>
4 #include <vector>
5 #include <set>
6 #include <gurobi_c++.h>
7 
8 #define CGE(call, env) \
9  { \
10  int gerror; \
11  gerror = call; \
12  if (gerror) \
13  std::cerr << "Gurobi error " << GRBgeterrormsg(env) << std::endl; \
14  }
15 
16 GRBmodel* gurobiQP(GRBenv* env, std::vector<Eigen::MatrixXd*> QblkDiag,
17  Eigen::VectorXd& f, const Eigen::MatrixXd& Aeq,
18  const Eigen::VectorXd& beq, const Eigen::MatrixXd& Ain,
19  const Eigen::VectorXd& bin, Eigen::VectorXd& lb,
20  Eigen::VectorXd& ub, std::set<int>& active,
21  Eigen::VectorXd& x, double active_set_slack_tol = 1e-4);
22 
23 // template <typename tA, typename tB, typename tC, typename tD, typename tE>
24 // GRBmodel* gurobiQP(GRBenv *env, std::vector< Eigen::Map<tA> > QblkDiag,
25 // Eigen::VectorXd& f, const Eigen::MatrixBase<tB>& Aeq, const
26 // Eigen::MatrixBase<tC>& beq, const Eigen::MatrixBase<tD>& Ain, const
27 // Eigen::MatrixBase<tE>& bin, Eigen::VectorXd& lb, Eigen::VectorXd& ub,
28 // std::set<int>& active, Eigen::VectorXd& x);
29 
30 GRBmodel* gurobiActiveSetQP(GRBenv* env, std::vector<Eigen::MatrixXd*> QblkDiag,
31  Eigen::VectorXd& f, const Eigen::MatrixXd& Aeq,
32  const Eigen::VectorXd& beq,
33  const Eigen::MatrixXd& Ain,
34  const Eigen::VectorXd& bin, Eigen::VectorXd& lb,
35  Eigen::VectorXd& ub, int*& vbasis, int vbasis_len,
36  int*& cbasis, int cbasis_len, Eigen::VectorXd& x);
std::vector< Number > x
Definition: IpoptSolver.cpp:169
GRBmodel * gurobiQP(GRBenv *env, std::vector< Eigen::MatrixXd * > QblkDiag, Eigen::VectorXd &f, const Eigen::MatrixXd &Aeq, const Eigen::VectorXd &beq, const Eigen::MatrixXd &Ain, const Eigen::VectorXd &bin, Eigen::VectorXd &lb, Eigen::VectorXd &ub, std::set< int > &active, Eigen::VectorXd &x, double active_set_slack_tol=1e-4)
GRBmodel * gurobiActiveSetQP(GRBenv *env, std::vector< Eigen::MatrixXd * > QblkDiag, Eigen::VectorXd &f, const Eigen::MatrixXd &Aeq, const Eigen::VectorXd &beq, const Eigen::MatrixXd &Ain, const Eigen::VectorXd &bin, Eigen::VectorXd &lb, Eigen::VectorXd &ub, int *&vbasis, int vbasis_len, int *&cbasis, int cbasis_len, Eigen::VectorXd &x)