45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			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) {
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
}
 |