19 #ifndef _EIGEN_QUADSOLVE_HPP_ 20 #define _EIGEN_QUADSOLVE_HPP_ 77 #include <Eigen/Cholesky> 88 inline void compute_d(Eigen::VectorXd& d,
const Eigen::MatrixXd& J,
89 const Eigen::VectorXd& np) {
90 d.noalias() = J.adjoint() * np;
93 inline void update_z(Eigen::VectorXd& z,
const Eigen::MatrixXd& J,
94 const Eigen::VectorXd& d,
size_t iq) {
95 z.noalias() = J.rightCols(z.size() - iq) * d.tail(d.size() - iq);
98 inline void update_r(
const Eigen::MatrixXd& R, Eigen::VectorXd& r,
99 const Eigen::VectorXd& d,
size_t iq) {
100 r.head(iq) = d.head(iq);
101 R.topLeftCorner(iq, iq).triangularView<Eigen::Upper>().solveInPlace(
105 bool add_constraint(Eigen::MatrixXd& R, Eigen::MatrixXd& J, Eigen::VectorXd& d,
106 size_t& iq,
double& R_norm);
108 Eigen::VectorXi& A, Eigen::VectorXd& u,
size_t p,
109 size_t& iq,
size_t l);
112 Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
double c1,
113 Eigen::VectorXd& g0,
const Eigen::MatrixXd& CE,
const Eigen::VectorXd& ce0,
114 const Eigen::MatrixXd& CI,
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
115 Eigen::VectorXi& A,
size_t& q);
118 Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
double c1,
119 Eigen::VectorXd& g0,
const Eigen::MatrixXd& CE,
const Eigen::VectorXd& ce0,
120 const Eigen::MatrixXd& CI,
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
121 Eigen::VectorXd& y, Eigen::VectorXi& A,
size_t& q);
125 double c1, Eigen::VectorXd& g0,
126 const Eigen::MatrixXd& CE,
127 const Eigen::VectorXd& ce0,
128 const Eigen::MatrixXd& CI,
129 const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
130 Eigen::VectorXi& A,
size_t& q) {
136 Eigen::MatrixXd& G, Eigen::VectorXd& g0,
const Eigen::MatrixXd& CE,
137 const Eigen::VectorXd& ce0,
const Eigen::MatrixXd& CI,
138 const Eigen::VectorXd& ci0, Eigen::VectorXd& x, Eigen::VectorXi& activeSet,
139 size_t& activeSetSize);
142 Eigen::MatrixXd& G, Eigen::VectorXd& g0,
const Eigen::MatrixXd& CE,
143 const Eigen::VectorXd& ce0,
const Eigen::MatrixXd& CI,
144 const Eigen::VectorXd& ci0, Eigen::VectorXd& x, Eigen::VectorXd& y,
145 Eigen::VectorXi& activeSet,
size_t& activeSetSize);
bool add_constraint(Eigen::MatrixXd &R, Eigen::MatrixXd &J, Eigen::VectorXd &d, size_t &iq, double &R_norm)
void compute_d(Eigen::VectorXd &d, const Eigen::MatrixXd &J, const Eigen::VectorXd &np)
Definition: eiquadprog.hpp:88
Definition: eiquadprog-fast.hpp:64
#define EIQUADPROG_DLLAPI
Definition: config.hpp:88
void update_r(const Eigen::MatrixXd &R, Eigen::VectorXd &r, const Eigen::VectorXd &d, size_t iq)
Definition: eiquadprog.hpp:98
EIQUADPROG_DLLAPI double solve_quadprog(Eigen::LLT< Eigen::MatrixXd, Eigen::Lower > &chol, double c1, Eigen::VectorXd &g0, const Eigen::MatrixXd &CE, const Eigen::VectorXd &ce0, const Eigen::MatrixXd &CI, const Eigen::VectorXd &ci0, Eigen::VectorXd &x, Eigen::VectorXi &A, size_t &q)
#define EIQUADPROG_DEPRECATED
Definition: deprecated.hpp:37
void delete_constraint(Eigen::MatrixXd &R, Eigen::MatrixXd &J, Eigen::VectorXi &A, Eigen::VectorXd &u, size_t p, size_t &iq, size_t l)
void update_z(Eigen::VectorXd &z, const Eigen::MatrixXd &J, const Eigen::VectorXd &d, size_t iq)
Definition: eiquadprog.hpp:93
EIQUADPROG_DEPRECATED double solve_quadprog2(Eigen::LLT< Eigen::MatrixXd, Eigen::Lower > &chol, double c1, Eigen::VectorXd &g0, const Eigen::MatrixXd &CE, const Eigen::VectorXd &ce0, const Eigen::MatrixXd &CI, const Eigen::VectorXd &ci0, Eigen::VectorXd &x, Eigen::VectorXi &A, size_t &q)
Definition: eiquadprog.hpp:124