22#include <gtsam/config.h>
24#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
35inline Key maxKey(
const QP& qp) {
37 bool initialized =
false;
38 auto update = [&](
const KeySet& keys) {
40 maxKey = initialized ? std::max(maxKey, *keys.rbegin()) : *keys.rbegin();
44 update(qp.cost.keys());
45 update(qp.equalities.keys());
46 update(qp.inequalities.keys());
65 QPInitSolver(
const QP& qp) : qp_(qp) {}
68 VectorValues solve()
const {
73 Key newKey = internal::maxKey(qp_) + 1;
74 initProblem.cost = LinearCost(newKey, Vector::Ones(1));
75 initProblem.equalities = qp_.equalities;
76 initProblem.inequalities = qp_.inequalities;
77 LPInitSolver initSolver(initProblem);
78 return initSolver.solve();
This finds a feasible solution for an LP problem.
Factor graphs of a Quadratic Programming problem.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
std::uint64_t Key
Integer nonlinear key type.
Definition types.h:43