gtsam/gtsam_unstable/linear/LPState.h

45 lines
1.3 KiB
C++

/**
* @file LPState.h
* @brief This struct holds the state of QPSolver at each iteration
* @author Ivan Dario Jimenez
* @date 1/24/16
*/
#include <gtsam/linear/VectorValues.h>
#include "InequalityFactorGraph.h"
namespace gtsam {
/*
* This struct contains the state information for a single iteration of an
* active set method iteration.
*/
struct LPState {
// A itermediate value for the value of the final solution.
VectorValues values;
// Constains the set of duals computed during the iteration that retuned this
// state.
VectorValues duals;
// An inequality Factor Graph that contains only the active constriants.
InequalityFactorGraph workingSet;
// True if the algorithm has converged to a solution
bool converged;
// counter for the number of iteration. Incremented at the end of each iter.
size_t iterations;
/// default constructor
LPState() :
values(), duals(), workingSet(), converged(false), iterations(0) {
}
/// constructor with initial values
LPState(const VectorValues& initialValues, const VectorValues& initialDuals,
const InequalityFactorGraph& initialWorkingSet, bool _converged,
size_t _iterations) :
values(initialValues), duals(initialDuals), workingSet(initialWorkingSet), converged(
_converged), iterations(_iterations) {
}
};
}