37 #ifndef QPOASES_QPROBLEM_HPP 38 #define QPOASES_QPROBLEM_HPP 41 #include <qpOASES/QProblemB.hpp> 42 #include <qpOASES/Constraints.hpp> 43 #include <qpOASES/ConstraintProduct.hpp> 44 #include <qpOASES/Matrices.hpp> 135 real_t*
const cputime = 0,
139 const real_t*
const yOpt = 0,
141 const Bounds*
const guessedBounds = 0,
145 const real_t*
const _R = 0
187 real_t*
const cputime = 0,
191 const real_t*
const yOpt = 0,
193 const Bounds*
const guessedBounds = 0,
197 const real_t*
const _R = 0
227 const char*
const g_file,
228 const char*
const A_file,
229 const char*
const lb_file,
231 const char*
const ub_file,
233 const char*
const lbA_file,
235 const char*
const ubA_file,
239 real_t*
const cputime = 0,
243 const real_t*
const yOpt = 0,
245 const Bounds*
const guessedBounds = 0,
249 const char*
const R_file = 0
283 real_t*
const cputime = 0,
285 const Bounds*
const guessedBounds = 0,
312 const char*
const lb_file,
314 const char*
const ub_file,
316 const char*
const lbA_file,
318 const char*
const ubA_file,
322 real_t*
const cputime = 0,
324 const Bounds*
const guessedBounds = 0,
445 const Bounds*
const guessedBounds,
479 int_t nWSRperformed = 0,
512 int_t nWSRperformed = 0,
576 const Bounds*
const guessedBounds,
711 const int_t*
const idxList,
764 const real_t*
const delta_lbA,
765 const real_t*
const delta_ubA,
766 const real_t*
const delta_lb,
767 const real_t*
const delta_ub,
782 const real_t*
const delta_lbA,
783 const real_t*
const delta_ubA,
784 const real_t*
const delta_lb,
785 const real_t*
const delta_ub,
830 real_t*
const lbA_new_far,
909 const char*
const g_file,
910 const char*
const A_file,
911 const char*
const lb_file,
913 const char*
const ub_file,
915 const char*
const lbA_file,
917 const char*
const ubA_file
927 const char*
const lb_file,
929 const char*
const ub_file,
931 const char*
const lbA_file,
933 const char*
const ubA_file,
1072 #include <qpOASES/QProblem.ipp> BooleanType areBoundsConsistent(const real_t *const delta_lb, const real_t *const delta_ub, const real_t *const delta_lbA, const real_t *const delta_ubA) const
returnValue addConstraint_ensureLI(int number, SubjectToStatus C_status)
returnValue addBound_ensureLI(int number, SubjectToStatus B_status)
returnValue setupQPdataFromFile(const char *const H_file, const char *const g_file, const char *const A_file, const char *const lb_file, const char *const ub_file, const char *const lbA_file, const char *const ubA_file)
returnValue solveCurrentEQP(const int n_rhs, const real_t *g_in, const real_t *lb_in, const real_t *ub_in, const real_t *lbA_in, const real_t *ubA_in, real_t *x_out, real_t *y_out)
returnValue init(const real_t *const _H, const real_t *const _g, const real_t *const _A, const real_t *const _lb, const real_t *const _ub, const real_t *const _lbA, const real_t *const _ubA, int &nWSR, const real_t *const yOpt=0, real_t *const cputime=0)
returnValue writeQpWorkspaceIntoMatFile(const char *const filename)
Interface for specifying user-defined evaluations of constraint products.
Manages working sets of constraints.
returnValue addConstraint_checkLI(int number)
BooleanType shallRefactorise(const Bounds *const guessedBounds, const Constraints *const guessedConstraints) const
returnValue removeConstraint(int number, BooleanType updateCholesky)
virtual returnValue getWorkingSetBounds(real_t *workingSetB)
Implements the online active set strategy for box-constrained QPs.
returnValue setupAuxiliaryQPgradient()
returnValue performDriftCorrection()
returnValue solveRegularisedQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new, int &nWSR, real_t *const cputime, int nWSRperformed=0)
returnValue setupAuxiliaryQPsolution(const real_t *const xOpt, const real_t *const yOpt)
ConstraintProduct * constraintProduct
Allows to pass back messages to the calling function.
returnValue setLBA(const real_t *const lbA_new)
virtual returnValue setupInitialCholesky()
virtual returnValue updateActivitiesForHotstart(const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new)
returnValue ensureNonzeroCurvature(BooleanType removeBoundNotConstraint, int remIdx, BooleanType &exchangeHappened, BooleanType &addBoundNotConstraint, int &addIdx, SubjectToStatus &addStatus)
real_t getRelativeHomotopyLength(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new)
virtual returnValue performRamping()
returnValue hotstart(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new, int &nWSR, real_t *const cputime)
BooleanType freeConstraintMatrix
virtual returnValue getWorkingSetConstraints(real_t *workingSetC)
returnValue performPlainRatioTest(int nIdx, const int *const idxList, const real_t *const num, const real_t *const den, real_t epsNum, real_t epsDen, real_t &t, int &BC_idx) const
returnValue obtainAuxiliaryWorkingSet(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, const Constraints *const guessedConstraints, Bounds *auxiliaryBounds, Constraints *auxiliaryConstraints) const
returnValue solveInitialQP(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, const Constraints *const guessedConstraints, int &nWSR, real_t *const cputime)
returnValue setupQPdata(const real_t *const _H, const real_t *const _g, const real_t *const _A, const real_t *const _lb, const real_t *const _ub, const real_t *const _lbA, const real_t *const _ubA)
returnValue backsolveT(const real_t *const b, BooleanType transposed, real_t *const a)
returnValue changeActiveSet(int BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound)
returnValue setupSubjectToType()
returnValue setConstraintProduct(ConstraintProduct *const _constraintProduct)
returnValue updateFarBounds(real_t curFarBound, int_t nRamp, const real_t *const lb_new, real_t *const lb_new_far, const real_t *const ub_new, real_t *const ub_new_far, const real_t *const lbA_new, real_t *const lbA_new_far, const real_t *const ubA_new, real_t *const ubA_new_far) const
virtual returnValue computeProjectedCholesky()
returnValue setupAuxiliaryQPbounds(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType useRelaxation)
returnValue getConstraints(Constraints *const _constraints) const
returnValue setupSubjectToType()
real_t A[NCMAX_ALLOC *NVMAX]
Provides additional tools for analysing QP solutions.
returnValue getFreeVariablesFlags(BooleanType *varIsFree)
returnValue determineStepDirection(const real_t *const delta_g, const real_t *const delta_lbA, const real_t *const delta_ubA, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bC_isZero, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yAC, real_t *const delta_yFX)
Abstract base class for interfacing tailored matrix-vector operations.
returnValue loadQPvectorsFromFile(const char *const g_file, const char *const lb_file, const char *const ub_file, const char *const lbA_file, const char *const ubA_file, real_t *const g_new, real_t *const lb_new, real_t *const ub_new, real_t *const lbA_new, real_t *const ubA_new) const
void rhs(const real_t *x, real_t *f)
#define END_NAMESPACE_QPOASES
returnValue solveQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new, int &nWSR, real_t *const cputime, int nWSRperformed=0)
returnValue addBound(int number, SubjectToStatus B_status, BooleanType updateCholesky)
returnValue copy(const QProblem &rhs)
returnValue performStep(const real_t *const delta_g, const real_t *const delta_lbA, const real_t *const delta_ubA, const real_t *const delta_lb, const real_t *const delta_ub, const real_t *const delta_xFX, const real_t *const delta_xFR, const real_t *const delta_yAC, const real_t *const delta_yFX, int &BC_idx, SubjectToStatus &BC_status, BooleanType &BC_isBound)
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds, const Constraints *const guessedConstraints)
returnValue setupAuxiliaryQP(const Bounds *const guessedBounds)
returnValue removeBound(int number, BooleanType updateCholesky)
returnValue determineDataShift(const real_t *const g_new, const real_t *const lbA_new, const real_t *const ubA_new, const real_t *const lb_new, const real_t *const ub_new, real_t *const delta_g, real_t *const delta_lbA, real_t *const delta_ubA, real_t *const delta_lb, real_t *const delta_ub, BooleanType &Delta_bC_isZero, BooleanType &Delta_bB_isZero)
virtual returnValue getWorkingSet(real_t *workingSet)
virtual returnValue printProperties()
Manages working sets of bounds (= box constraints).
returnValue dropInfeasibles(int_t BC_number, SubjectToStatus BC_status, BooleanType BC_isBound, real_t *xiB, real_t *xiC)
#define BEGIN_NAMESPACE_QPOASES
returnValue printIteration(int iteration, int BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound)
Implements the online active set strategy for QPs with general constraints.
returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType setupAfresh)
returnValue writeQpDataIntoMatFile(const char *const filename) const
QProblem & operator=(const QProblem &rhs)
returnValue addBound_checkLI(int number)
returnValue setA(const real_t *const A_new)
returnValue setupTQfactorisation()
returnValue setUBA(const real_t *const ubA_new)
returnValue addConstraint(int number, SubjectToStatus C_status, BooleanType updateCholesky)
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices...
returnValue getDualSolution(real_t *const yOpt) const