37#ifndef QPOASES_QPROBLEM_HPP
38#define QPOASES_QPROBLEM_HPP
136 real_t*
const cputime = 0,
138 const real_t*
const xOpt = 0,
140 const real_t*
const yOpt = 0,
142 const Bounds*
const guessedBounds = 0,
146 const real_t*
const _R = 0
188 real_t*
const cputime = 0,
190 const real_t*
const xOpt = 0,
192 const real_t*
const yOpt = 0,
194 const Bounds*
const guessedBounds = 0,
198 const real_t*
const _R = 0
228 const char*
const g_file,
229 const char*
const A_file,
230 const char*
const lb_file,
232 const char*
const ub_file,
234 const char*
const lbA_file,
236 const char*
const ubA_file,
240 real_t*
const cputime = 0,
242 const real_t*
const xOpt = 0,
244 const real_t*
const yOpt = 0,
246 const Bounds*
const guessedBounds = 0,
250 const char*
const R_file = 0
274 const real_t*
const lb_new,
276 const real_t*
const ub_new,
278 const real_t*
const lbA_new,
280 const real_t*
const ubA_new,
284 real_t*
const cputime = 0,
286 const Bounds*
const guessedBounds = 0,
313 const char*
const lb_file,
315 const char*
const ub_file,
317 const char*
const lbA_file,
319 const char*
const ubA_file,
323 real_t*
const cputime = 0,
325 const Bounds*
const guessedBounds = 0,
446 const Bounds*
const guessedBounds,
468 const real_t*
const lb_new,
470 const real_t*
const ub_new,
472 const real_t*
const lbA_new,
474 const real_t*
const ubA_new,
480 int_t nWSRperformed = 0,
501 const real_t*
const lb_new,
503 const real_t*
const ub_new,
505 const real_t*
const lbA_new,
507 const real_t*
const ubA_new,
513 int_t nWSRperformed = 0,
525 const real_t*
const ub_new,
526 const real_t*
const lbA_new,
527 const real_t*
const ubA_new
541 const real_t*
const ub_new,
542 const real_t*
const lbA_new,
543 const real_t*
const ubA_new
577 const Bounds*
const guessedBounds,
712 const int_t*
const idxList,
747 const real_t*
const lbA_new,
748 const real_t*
const ubA_new,
749 const real_t*
const lb_new,
750 const real_t*
const ub_new,
765 const real_t*
const delta_lbA,
766 const real_t*
const delta_ubA,
767 const real_t*
const delta_lb,
768 const real_t*
const delta_ub,
783 const real_t*
const delta_lbA,
784 const real_t*
const delta_ubA,
785 const real_t*
const delta_lb,
786 const real_t*
const delta_ub,
787 const real_t*
const delta_xFX,
788 const real_t*
const delta_xFR,
789 const real_t*
const delta_yAC,
790 const real_t*
const delta_yFX,
810 const real_t*
const lb_new,
811 const real_t*
const ub_new,
812 const real_t*
const lbA_new,
813 const real_t*
const ubA_new
826 const real_t*
const lb_new,
828 const real_t*
const ub_new,
830 const real_t*
const lbA_new,
831 real_t*
const lbA_new_far,
832 const real_t*
const ubA_new,
910 const char*
const g_file,
911 const char*
const A_file,
912 const char*
const lb_file,
914 const char*
const ub_file,
916 const char*
const lbA_file,
918 const char*
const ubA_file
928 const char*
const lb_file,
930 const char*
const ub_file,
932 const char*
const lbA_file,
934 const char*
const ubA_file,
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:65
BooleanType
Definition: Types.hpp:204
@ BT_TRUE
Definition: Types.hpp:206
@ BT_FALSE
Definition: Types.hpp:205
HessianType
Definition: Types.hpp:249
@ HST_UNKNOWN
Definition: Types.hpp:256
SubjectToStatus
Definition: Types.hpp:273
int int_t
Definition: Types.hpp:180
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
Manages working sets of bounds (i.e. box constraints).
Definition: Bounds.hpp:57
Interface for specifying user-defined evaluations of constraint products.
Definition: ConstraintProduct.hpp:58
Manages working sets of constraints.
Definition: Constraints.hpp:57
Abstract base class for interfacing tailored matrix-vector operations.
Definition: Matrices.hpp:60
Implements the online active set strategy for box-constrained QPs.
Definition: QProblemB.hpp:64
real_t * lb
Definition: QProblemB.hpp:975
virtual returnValue setupSubjectToType()
Definition: QProblemB.cpp:1281
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds)
Definition: QProblemB.cpp:2980
real_t * ub
Definition: QProblemB.hpp:976
Implements the online active set strategy for QPs with general constraints.
Definition: QProblem.hpp:62
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)
Definition: QProblem.cpp:5372
virtual returnValue computeProjectedCholesky()
Definition: QProblem.cpp:2036
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)
Definition: QProblem.cpp:5884
virtual returnValue setupTQfactorisation()
Definition: QProblem.cpp:2169
returnValue getFreeVariablesFlags(BooleanType *varIsFree)
Definition: QProblem.cpp:1058
real_t * Ax_u
Definition: QProblem.hpp:1057
Constraints constraints
Definition: QProblem.hpp:1047
int_t getNAC() const
Definition: QProblem.ipp:83
returnValue setupAuxiliaryQPbounds(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType useRelaxation)
Definition: QProblem.cpp:2668
virtual returnValue getWorkingSet(real_t *workingSet)
Definition: QProblem.cpp:794
virtual returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType setupAfresh)
Definition: QProblem.cpp:2351
virtual returnValue performRamping()
Definition: QProblem.cpp:5416
real_t * tempC
Definition: QProblem.hpp:1069
virtual 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)
Definition: QProblem.cpp:4637
int_t sizeT
Definition: QProblem.hpp:1051
returnValue setupAuxiliaryQPgradient()
Definition: QProblem.cpp:2602
virtual returnValue getWorkingSetBounds(real_t *workingSetB)
Definition: QProblem.cpp:814
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
Definition: QProblem.cpp:2199
virtual returnValue reset()
Definition: QProblem.cpp:219
virtual returnValue performDriftCorrection()
Definition: QProblem.cpp:5558
returnValue setUBA(const real_t *const ubA_new)
Definition: QProblem.ipp:234
returnValue copy(const QProblem &rhs)
Definition: QProblem.cpp:1181
returnValue setupAuxiliaryQPsolution(const real_t *const xOpt, const real_t *const yOpt)
Definition: QProblem.cpp:2545
BooleanType freeConstraintMatrix
Definition: QProblem.hpp:1041
Matrix * A
Definition: QProblem.hpp:1042
real_t * delta_xFRz
Definition: QProblem.hpp:1066
returnValue solveCurrentEQP(const int_t 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)
Definition: QProblem.cpp:718
returnValue setLBA(const real_t *const lbA_new)
Definition: QProblem.ipp:186
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_t &BC_idx, SubjectToStatus &BC_status, BooleanType &BC_isBound)
Definition: QProblem.cpp:4981
int_t getNEC() const
Definition: QProblem.ipp:74
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_t &nWSR, real_t *const cputime=0, const Bounds *const guessedBounds=0, const Constraints *const guessedConstraints=0)
Definition: QProblem.cpp:446
real_t * Ax
Definition: QProblem.hpp:1053
returnValue writeQpWorkspaceIntoMatFile(const char *const filename)
Definition: QProblem.cpp:6407
virtual returnValue addConstraint_ensureLI(int_t number, SubjectToStatus C_status)
Definition: QProblem.cpp:3117
real_t * tempB
Definition: QProblem.hpp:1063
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_t &nWSR, real_t *const cputime, int_t nWSRperformed=0, BooleanType isFirstCall=BT_TRUE)
Definition: QProblem.cpp:1753
virtual returnValue printProperties()
Definition: QProblem.cpp:896
virtual returnValue addBound_ensureLI(int_t number, SubjectToStatus B_status)
Definition: QProblem.cpp:3596
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)
Definition: QProblem.cpp:1861
QProblem()
Definition: QProblem.cpp:51
returnValue changeActiveSet(int_t BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound)
Definition: QProblem.cpp:5284
returnValue ensureNonzeroCurvature(BooleanType removeBoundNotConstraint, int_t remIdx, BooleanType &exchangeHappened, BooleanType &addBoundNotConstraint, int_t &addIdx, SubjectToStatus &addStatus)
Definition: QProblem.cpp:4278
virtual returnValue removeConstraint(int_t number, BooleanType updateCholesky, BooleanType allowFlipping=BT_FALSE, BooleanType ensureNZC=BT_FALSE)
Definition: QProblem.cpp:3782
real_t * tempA
Definition: QProblem.hpp:1062
real_t * ZFR_delta_xFRz
Definition: QProblem.hpp:1064
virtual QProblem & operator=(const QProblem &rhs)
Definition: QProblem.cpp:203
returnValue performPlainRatioTest(int_t nIdx, const int_t *const idxList, const real_t *const num, const real_t *const den, real_t epsNum, real_t epsDen, real_t &t, int_t &BC_idx) const
Definition: QProblem.cpp:4256
real_t * T
Definition: QProblem.hpp:1049
returnValue setConstraintProduct(ConstraintProduct *const _constraintProduct)
Definition: QProblem.cpp:885
virtual returnValue addBound(int_t number, SubjectToStatus B_status, BooleanType updateCholesky, BooleanType ensureLI=BT_TRUE)
Definition: QProblem.cpp:3307
returnValue solveInitialQP(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, const Constraints *const guessedConstraints, const real_t *const _R, int_t &nWSR, real_t *const cputime)
Definition: QProblem.cpp:1301
returnValue setupQPdata(SymmetricMatrix *_H, const real_t *const _g, Matrix *_A, const real_t *const _lb, const real_t *const _ub, const real_t *const _lbA, const real_t *const _ubA)
Definition: QProblem.cpp:5785
real_t * Ax_l
Definition: QProblem.hpp:1055
virtual returnValue addBound_checkLI(int_t number)
Definition: QProblem.cpp:3487
real_t * lbA
Definition: QProblem.hpp:1044
BooleanType shallRefactorise(const Bounds *const guessedBounds, const Constraints *const guessedConstraints) const
Definition: QProblem.cpp:5746
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
Definition: QProblem.cpp:5953
virtual returnValue getWorkingSetConstraints(real_t *workingSetC)
Definition: QProblem.cpp:823
returnValue clear()
Definition: QProblem.cpp:1082
virtual returnValue addConstraint_checkLI(int_t number)
Definition: QProblem.cpp:2982
returnValue dropInfeasibles(int_t BC_number, SubjectToStatus BC_status, BooleanType BC_isBound, real_t *xiB, real_t *xiC)
Definition: QProblem.cpp:6264
virtual ~QProblem()
Definition: QProblem.cpp:194
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)
Definition: QProblem.cpp:4571
real_t * Q
Definition: QProblem.hpp:1050
virtual returnValue removeBound(int_t number, BooleanType updateCholesky, BooleanType allowFlipping=BT_FALSE, BooleanType ensureNZC=BT_FALSE)
Definition: QProblem.cpp:4018
returnValue init(SymmetricMatrix *_H, const real_t *const _g, Matrix *_A, const real_t *const _lb, const real_t *const _ub, const real_t *const _lbA, const real_t *const _ubA, int_t &nWSR, real_t *const cputime=0, const real_t *const xOpt=0, const real_t *const yOpt=0, const Bounds *const guessedBounds=0, const Constraints *const guessedConstraints=0, const real_t *const _R=0)
Definition: QProblem.cpp:258
int_t getNC() const
Definition: QProblem.ipp:65
returnValue areBoundsConsistent(const real_t *const lb, const real_t *const ub, const real_t *const lbA, const real_t *const ubA) const
Definition: QProblem.cpp:2647
virtual returnValue backsolveT(const real_t *const b, BooleanType transposed, real_t *const a) const
Definition: QProblem.cpp:4518
virtual int_t getNZ() const
Definition: QProblem.cpp:849
returnValue getConstraints(Constraints &_constraints) const
Definition: QProblem.ipp:48
ConstraintProduct * constraintProduct
Definition: QProblem.hpp:1060
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_t &nWSR, real_t *const cputime, int_t nWSRperformed=0, BooleanType isFirstCall=BT_TRUE)
Definition: QProblem.cpp:1477
returnValue printIteration(int_t iter, int_t BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound, real_t homotopyLength, BooleanType isFirstCall=BT_TRUE)
Definition: QProblem.cpp:6011
int_t getNIAC() const
Definition: QProblem.ipp:92
virtual returnValue setupInitialCholesky()
Definition: QProblem.cpp:2135
real_t * delta_yAC_TMP
Definition: QProblem.hpp:1067
virtual returnValue getDualSolution(real_t *const yOpt) const
Definition: QProblem.cpp:859
returnValue writeQpDataIntoMatFile(const char *const filename) const
Definition: QProblem.cpp:6363
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
Definition: QProblem.cpp:5498
virtual returnValue setupSubjectToType()
Definition: QProblem.cpp:1935
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds, const Constraints *const guessedConstraints)
Definition: QProblem.cpp:5657
real_t * delta_xFRy
Definition: QProblem.hpp:1065
virtual returnValue addConstraint(int_t number, SubjectToStatus C_status, BooleanType updateCholesky, BooleanType ensureLI=BT_TRUE)
Definition: QProblem.cpp:2819
real_t * ubA
Definition: QProblem.hpp:1045
returnValue setA(Matrix *A_new)
Definition: QProblem.ipp:107
Provides additional tools for analysing QP solutions.
Definition: SolutionAnalysis.hpp:58
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices.
Definition: Matrices.hpp:293