21#include <gtsam/config.h>
23#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
36 GaussianFactorGraph cost;
37 EqualityFactorGraph equalities;
38 InequalityFactorGraph inequalities;
41 mutable VariableIndex cachedCostVariableIndex_;
46 cost(), equalities(), inequalities() {
50 QP(
const GaussianFactorGraph& _cost,
51 const EqualityFactorGraph& _linearEqualities,
52 const InequalityFactorGraph& _linearInequalities) :
53 cost(_cost), equalities(_linearEqualities), inequalities(
54 _linearInequalities) {
58 void print(
const std::string& s =
"") {
59 std::cout << s << std::endl;
60 cost.print(
"Quadratic cost factors: ");
61 equalities.print(
"Linear equality factors: ");
62 inequalities.print(
"Linear inequality factors: ");
65 const VariableIndex& costVariableIndex()
const {
66 if (cachedCostVariableIndex_.size() == 0)
67 cachedCostVariableIndex_ = VariableIndex(cost);
68 return cachedCostVariableIndex_;
71 Vector costGradient(Key key,
const VectorValues& delta)
const {
72 Vector g = Vector::Zero(delta.at(key).size());
73 if (costVariableIndex().find(key) != costVariableIndex().end()) {
74 for (
size_t factorIx : costVariableIndex()[key]) {
75 GaussianFactor::shared_ptr factor = cost.at(factorIx);
76 g += factor->gradient(key, delta);
Linear Factor Graph where all factors are Gaussians.
utility functions for loading datasets
Factor graph of all LinearInequality factors.
Factor graph of all LinearEquality factors.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:143