19 #ifndef _EIGEN_QUADSOLVE_HPP_
20 #define _EIGEN_QUADSOLVE_HPP_
77 #include <Eigen/Cholesky>
80 #include "eiquadprog/deprecated.hpp"
87 inline void compute_d(Eigen::VectorXd &d,
const Eigen::MatrixXd &J,
88 const Eigen::VectorXd &np) {
89 d.noalias() = J.adjoint() * np;
92 inline void update_z(Eigen::VectorXd &z,
const Eigen::MatrixXd &J,
93 const Eigen::VectorXd &d,
size_t iq) {
94 z.noalias() = J.rightCols(z.size() - iq) * d.tail(d.size() - iq);
97 inline void update_r(
const Eigen::MatrixXd &R, Eigen::VectorXd &r,
98 const Eigen::VectorXd &d,
size_t iq) {
99 r.head(iq) = d.head(iq);
100 R.topLeftCorner(iq, iq).triangularView<Eigen::Upper>().solveInPlace(
105 size_t &iq,
double &R_norm);
107 Eigen::VectorXi &A, Eigen::VectorXd &u,
size_t p,
108 size_t &iq,
size_t l);
111 double c1, Eigen::VectorXd &g0,
const Eigen::MatrixXd &CE,
112 const Eigen::VectorXd &ce0,
const Eigen::MatrixXd &CI,
113 const Eigen::VectorXd &ci0, Eigen::VectorXd &x,
114 Eigen::VectorXi &A,
size_t &q);
117 double c1, Eigen::VectorXd &g0,
const Eigen::MatrixXd &CE,
118 const Eigen::VectorXd &ce0,
const Eigen::MatrixXd &CI,
119 const Eigen::VectorXd &ci0, Eigen::VectorXd &x,
120 Eigen::VectorXd &y, Eigen::VectorXi &A,
size_t &q);
122 EIQUADPROG_DEPRECATED
124 double c1, Eigen::VectorXd &g0,
125 const Eigen::MatrixXd &CE,
126 const Eigen::VectorXd &ce0,
127 const Eigen::MatrixXd &CI,
128 const Eigen::VectorXd &ci0, Eigen::VectorXd &x,
129 Eigen::VectorXi &A,
size_t &q) {
135 const Eigen::MatrixXd &CE,
const Eigen::VectorXd &ce0,
136 const Eigen::MatrixXd &CI,
const Eigen::VectorXd &ci0,
137 Eigen::VectorXd &x, Eigen::VectorXi &activeSet,
138 size_t &activeSetSize);
141 const Eigen::MatrixXd &CE,
const Eigen::VectorXd &ce0,
142 const Eigen::MatrixXd &CI,
const Eigen::VectorXd &ci0,
143 Eigen::VectorXd &x, Eigen::VectorXd &y,
144 Eigen::VectorXi &activeSet,
size_t &activeSetSize);
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:123
void update_z(Eigen::VectorXd &z, const Eigen::MatrixXd &J, const Eigen::VectorXd &d, size_t iq)
Definition: eiquadprog.hpp:92
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:87
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)
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_r(const Eigen::MatrixXd &R, Eigen::VectorXd &r, const Eigen::VectorXd &d, size_t iq)
Definition: eiquadprog.hpp:97
Definition: eiquadprog-fast.hpp:63