forked from RobotLocomotion/drake
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfast_qp.h
41 lines (34 loc) · 1.74 KB
/
fast_qp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
#include <set>
#include <vector>
#include <Eigen/Dense>
int fastQPThatTakesQinv(
std::vector<Eigen::MatrixXd*> QinvblkDiag, const Eigen::VectorXd& f,
const Eigen::MatrixXd& Aeq, const Eigen::VectorXd& beq,
const Eigen::MatrixXd& Ain, const Eigen::VectorXd& bin,
// TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
std::set<int>& active, Eigen::VectorXd& x);
int fastQP(
std::vector<Eigen::MatrixXd*> QblkDiag, const Eigen::VectorXd& f,
const Eigen::MatrixXd& Aeq, const Eigen::VectorXd& beq,
const Eigen::MatrixXd& Ain, const Eigen::VectorXd& bin,
// TODO(#2274) Fix NOLINTNEXTLINE(runtime/references).
std::set<int>& active, Eigen::VectorXd& x);
// int fastQP(std::vector< Eigen::MatrixXd* > QblkDiag, const Eigen::VectorXd&
// f, const Eigen::MatrixXd& Aeq, const Eigen::VectorXd& beq, const
// Eigen::MatrixXd& Ain, const Eigen::VectorXd& bin, std::set<int>& active,
// Eigen::VectorXd& x, const Eigen::VectorXd& lb, const Eigen::VectorXd& ub);
/* TODO: restore templated versions
template <typename tA, typename tB, typename tC, typename tD, typename tE,
typename tF, typename tG>
int fastQP(std::vector< Eigen::Map<tA> > QblkDiag, const Eigen::MatrixBase<tB>&
f, const Eigen::MatrixBase<tC>& Aeq, const Eigen::MatrixBase<tD>& beq, const
Eigen::MatrixBase<tE>& Ain, const Eigen::MatrixBase<tF>& bin, std::set<int>&
active, Eigen::MatrixBase<tG>& x);
template <typename tA, typename tB, typename tC, typename tD, typename tE,
typename tF, typename tG>
int fastQPThatTakesQinv(std::vector< Eigen::Map<tA> > QinvblkDiag, const
Eigen::MatrixBase<tB>& f, const Eigen::MatrixBase<tC>& Aeq, const
Eigen::MatrixBase<tD>& beq, const Eigen::MatrixBase<tE>& Ain, const
Eigen::MatrixBase<tF>& bin, std::set<int>& active, Eigen::MatrixBase<tG>& x);
*/