38 #ifndef QPOASES_QPROBLEMB_HPP 39 #define QPOASES_QPROBLEMB_HPP 42 #include <qpOASES/Flipper.hpp> 43 #include <qpOASES/Options.hpp> 44 #include <qpOASES/Matrices.hpp> 130 real_t*
const cputime = 0,
134 const real_t*
const yOpt = 0,
136 const Bounds*
const guessedBounds = 0,
138 const real_t*
const _R = 0
173 real_t*
const cputime = 0,
177 const real_t*
const yOpt = 0,
179 const Bounds*
const guessedBounds = 0,
181 const real_t*
const _R = 0
209 const char*
const g_file,
210 const char*
const lb_file,
212 const char*
const ub_file,
216 real_t*
const cputime = 0,
220 const real_t*
const yOpt = 0,
222 const Bounds*
const guessedBounds = 0,
224 const char*
const R_file = 0
255 real_t*
const cputime = 0,
257 const Bounds*
const guessedBounds = 0
283 const char*
const lb_file,
285 const char*
const ub_file,
289 real_t*
const cputime = 0,
291 const Bounds*
const guessedBounds = 0
502 const Bounds*
const guessedBounds,
583 const char*
const g_file,
584 const char*
const lb_file,
586 const char*
const ub_file
596 const char*
const lb_file,
598 const char*
const ub_file,
734 const int_t*
const idxList,
782 const Bounds*
const guessedBounds,
811 int_t nWSRperformed = 0,
840 int_t nWSRperformed = 0,
896 const real_t*
const delta_lb,
897 const real_t*
const delta_ub,
910 const real_t*
const delta_lb,
911 const real_t*
const delta_ub,
1013 #include <qpOASES/QProblemB.ipp> returnValue getPrimalSolution(real_t *const xOpt) const
real_t getRelativeHomotopyLength(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new)
HessianType getHessianType() const
Interfaces matrix-vector operations tailored to symmetric sparse matrices.
BooleanType isInfeasible() const
returnValue copy(const QProblemB &rhs)
TabularOutput tabularOutput
Implements the online active set strategy for box-constrained QPs.
BooleanType isUnbounded() const
returnValue printOptions() const
void computeGivens(real_t xold, real_t yold, real_t &xnew, real_t &ynew, real_t &c, real_t &s) const
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
returnValue obtainAuxiliaryWorkingSet(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, Bounds *auxiliaryBounds) const
BooleanType shallRefactorise(const Bounds *const guessedBounds) const
Allows to pass back messages to the calling function.
returnValue determineHessianType()
returnValue solveRegularisedQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int &nWSR, real_t *const cputime, int nWSRperformed=0)
Base class for managing working sets of bounds and constraints.
returnValue determineStepDirection(const real_t *const delta_g, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yFX)
virtual returnValue getWorkingSet(real_t *workingSet)
returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, BooleanType setupAfresh)
returnValue getBounds(Bounds *const _bounds) const
returnValue setH(const real_t *const H_new)
returnValue setInfeasibilityFlag(returnValue returnvalue)
returnValue setupAuxiliaryQPsolution(const real_t *const xOpt, const real_t *const yOpt)
returnValue backsolveR(const real_t *const b, BooleanType transposed, real_t *const a)
returnValue init(const real_t *const _H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub, int &nWSR, const real_t *const yOpt=0, real_t *const cputime=0)
returnValue performDriftCorrection()
Auxiliary class for storing a copy of the current matrix factorisations.
returnValue setupAuxiliaryQPgradient()
SymSparseMat * createDiagSparseMat(int_t n, real_t diagVal=1.0)
Options getOptions() const
returnValue setOptions(const Options &_options)
returnValue changeActiveSet(int BC_idx, SubjectToStatus BC_status)
BooleanType usingRegularisation() const
BooleanType isCPUtimeLimitExceeded(const real_t *const cputime, real_t starttime, int nWSR) const
returnValue hotstart(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int &nWSR, real_t *const cputime)
returnValue getDualSolution(real_t *const yOpt) const
returnValue performRatioTest(int nIdx, const int *const idxList, const SubjectTo *const subjectTo, const real_t *const num, const real_t *const den, real_t epsNum, real_t epsDen, real_t &t, int &BC_idx) const
virtual returnValue getWorkingSetConstraints(real_t *workingSetC)
BooleanType isBlocking(real_t num, real_t den, real_t epsNum, real_t epsDen, real_t &t) const
returnValue determineDataShift(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, real_t *const delta_g, real_t *const delta_lb, real_t *const delta_ub, BooleanType &Delta_bB_isZero)
returnValue addBound(int number, SubjectToStatus B_status, BooleanType updateCholesky)
returnValue setupQPdata(const real_t *const _H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub)
returnValue setupSubjectToType()
returnValue printIteration(int iteration, int BC_idx, SubjectToStatus BC_status)
Provides a generic way to set and pass user-specified options.
returnValue performStep(const real_t *const delta_g, 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_yFX, int &BC_idx, SubjectToStatus &BC_status)
BooleanType areBoundsConsistent(const real_t *const delta_lb, const real_t *const delta_ub) const
Provides additional tools for analysing QP solutions.
PrintLevel getPrintLevel() const
virtual returnValue performRamping()
returnValue setupQPdataFromFile(const char *const H_file, const char *const g_file, const char *const lb_file, const char *const ub_file)
virtual returnValue computeCholesky()
returnValue regulariseHessian()
returnValue setupAuxiliaryQPbounds(BooleanType useRelaxation)
returnValue setHessianType(HessianType _hessianType)
void rhs(const real_t *x, real_t *f)
#define END_NAMESPACE_QPOASES
returnValue resetCounter()
virtual returnValue getWorkingSetBounds(real_t *workingSetB)
returnValue setupAuxiliaryQP(const Bounds *const guessedBounds)
BooleanType isInitialised() const
QProblemStatus getStatus() const
Stores internal information for tabular (debugging) output.
returnValue setUB(const real_t *const ub_new)
virtual returnValue setupInitialCholesky()
returnValue setG(const real_t *const g_new)
returnValue removeBound(int number, BooleanType updateCholesky)
QProblemB & operator=(const QProblemB &rhs)
returnValue solveQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int &nWSR, real_t *const cputime, int nWSRperformed=0)
virtual returnValue printProperties()
Manages working sets of bounds (= box constraints).
#define BEGIN_NAMESPACE_QPOASES
void applyGivens(real_t c, real_t s, real_t xold, real_t yold, real_t &xnew, real_t &ynew) const
returnValue loadQPvectorsFromFile(const char *const g_file, const char *const lb_file, const char *const ub_file, real_t *const g_new, real_t *const lb_new, real_t *const ub_new) const
returnValue solveInitialQP(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, int &nWSR, real_t *const cputime)
returnValue setLB(const real_t *const lb_new)
returnValue setPrintLevel(PrintLevel _printlevel)
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices...
BooleanType isSolved() const