|
84 | 84 | namespace eiquadprog { |
85 | 85 | namespace solvers { |
86 | 86 |
|
87 | | -inline void compute_d(Eigen::VectorXd &d, const Eigen::MatrixXd &J, |
88 | | - const Eigen::VectorXd &np) { |
| 87 | +inline void compute_d(Eigen::VectorXd& d, const Eigen::MatrixXd& J, |
| 88 | + const Eigen::VectorXd& np) { |
89 | 89 | d.noalias() = J.adjoint() * np; |
90 | 90 | } |
91 | 91 |
|
92 | | -inline void update_z(Eigen::VectorXd &z, const Eigen::MatrixXd &J, |
93 | | - const Eigen::VectorXd &d, size_t iq) { |
| 92 | +inline void update_z(Eigen::VectorXd& z, const Eigen::MatrixXd& J, |
| 93 | + const Eigen::VectorXd& d, size_t iq) { |
94 | 94 | z.noalias() = J.rightCols(z.size() - iq) * d.tail(d.size() - iq); |
95 | 95 | } |
96 | 96 |
|
97 | | -inline void update_r(const Eigen::MatrixXd &R, Eigen::VectorXd &r, |
98 | | - const Eigen::VectorXd &d, size_t iq) { |
| 97 | +inline void update_r(const Eigen::MatrixXd& R, Eigen::VectorXd& r, |
| 98 | + const Eigen::VectorXd& d, size_t iq) { |
99 | 99 | r.head(iq) = d.head(iq); |
100 | 100 | R.topLeftCorner(iq, iq).triangularView<Eigen::Upper>().solveInPlace( |
101 | 101 | r.head(iq)); |
102 | 102 | } |
103 | 103 |
|
104 | | -bool add_constraint(Eigen::MatrixXd &R, Eigen::MatrixXd &J, Eigen::VectorXd &d, |
105 | | - size_t &iq, double &R_norm); |
106 | | -void delete_constraint(Eigen::MatrixXd &R, Eigen::MatrixXd &J, |
107 | | - Eigen::VectorXi &A, Eigen::VectorXd &u, size_t p, |
108 | | - size_t &iq, size_t l); |
| 104 | +bool add_constraint(Eigen::MatrixXd& R, Eigen::MatrixXd& J, Eigen::VectorXd& d, |
| 105 | + size_t& iq, double& R_norm); |
| 106 | +void delete_constraint(Eigen::MatrixXd& R, Eigen::MatrixXd& J, |
| 107 | + Eigen::VectorXi& A, Eigen::VectorXd& u, size_t p, |
| 108 | + size_t& iq, size_t l); |
109 | 109 |
|
110 | | -double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower> &chol, |
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); |
| 110 | +double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, |
| 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); |
115 | 115 |
|
116 | | -double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower> &chol, |
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); |
| 116 | +double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, |
| 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); |
121 | 121 |
|
122 | 122 | EIQUADPROG_DEPRECATED |
123 | | -inline double solve_quadprog2(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower> &chol, |
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) { |
| 123 | +inline double solve_quadprog2(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, |
| 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) { |
130 | 130 | return solve_quadprog(chol, c1, g0, CE, ce0, CI, ci0, x, A, q); |
131 | 131 | } |
132 | 132 |
|
133 | 133 | /* solve_quadprog is used for on-demand QP solving */ |
134 | | -double solve_quadprog(Eigen::MatrixXd &G, Eigen::VectorXd &g0, |
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); |
139 | | - |
140 | | -double solve_quadprog(Eigen::MatrixXd &G, Eigen::VectorXd &g0, |
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); |
| 134 | +double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0, |
| 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); |
| 139 | + |
| 140 | +double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0, |
| 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); |
145 | 145 | // } |
146 | 146 |
|
147 | 147 | } // namespace solvers |
|
0 commit comments