12 #include <tasks/config.hh>
16 #include <Eigen/Sparse>
42 TASKS_DLLAPI GenQPSolver *
createQPSolver(
const std::string & name);
68 virtual void updateSize(
int nrVars,
int nrEq,
int nrInEq,
int nrGenInEq) = 0;
75 virtual void setDependencies(
int nrVars, std::vector<std::tuple<int, int, double>> dependencies);
85 virtual void updateMatrix(
const std::vector<Task *> &
tasks,
86 const std::vector<Equality *> & eqConstr,
87 const std::vector<Inequality *> & inEqConstr,
88 const std::vector<GenInequality *> & genInEqConstr,
89 const std::vector<Bound *> & boundConstr) = 0;
95 virtual bool solve() = 0;
98 virtual const Eigen::VectorXd & result()
const = 0;
101 virtual std::ostream & errorMsg(
const std::vector<rbd::MultiBody> & mbs,
102 const std::vector<Task *> &
tasks,
103 const std::vector<Equality *> & eqConstr,
104 const std::vector<Inequality *> & inEqConstr,
105 const std::vector<GenInequality *> & genInEqConstr,
106 const std::vector<Bound *> & boundConstr,
107 std::ostream & out)
const = 0;
110 virtual std::string name()
const = 0;