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> 175 const char*
const g_file,
176 const char*
const A_file,
177 const char*
const lb_file,
179 const char*
const ub_file,
181 const char*
const lbA_file,
183 const char*
const ubA_file,
229 const Bounds*
const guessedBounds,
272 const Bounds*
const guessedBounds,
297 const char*
const g_file,
298 const char*
const A_file,
299 const char*
const lb_file,
301 const char*
const ub_file,
303 const char*
const lbA_file,
305 const char*
const ubA_file,
315 const Bounds*
const guessedBounds,
365 const char*
const lb_file,
367 const char*
const ub_file,
369 const char*
const lbA_file,
371 const char*
const ubA_file,
406 const Bounds*
const guessedBounds,
430 const char*
const lb_file,
432 const char*
const ub_file,
434 const char*
const lbA_file,
436 const char*
const ubA_file,
442 const Bounds*
const guessedBounds,
475 inline int getNC( )
const;
479 inline int getNEC( )
const;
483 inline int getNAC( )
const;
491 virtual int getNZ( )
const;
541 const Bounds*
const guessedBounds,
576 int nWSRperformed = 0
608 int nWSRperformed = 0
659 const Bounds*
const guessedBounds,
794 const int*
const idxList,
847 const real_t*
const delta_lbA,
848 const real_t*
const delta_ubA,
849 const real_t*
const delta_lb,
850 const real_t*
const delta_ub,
865 const real_t*
const delta_lbA,
866 const real_t*
const delta_ubA,
867 const real_t*
const delta_lb,
868 const real_t*
const delta_ub,
977 const char*
const g_file,
978 const char*
const A_file,
979 const char*
const lb_file,
981 const char*
const ub_file,
983 const char*
const lbA_file,
985 const char*
const ubA_file
995 const char*
const lb_file,
997 const char*
const ub_file,
999 const char*
const lbA_file,
1001 const char*
const ubA_file,
1102 #include <qpOASES/QProblem.ipp> 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)
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)
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)
real_t relativeHomotopyLength(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)
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)
returnValue ensureNonzeroCurvature(BooleanType removeBoundNotConstraint, int remIdx, BooleanType &exchangeHappened, BooleanType &addBoundNotConstraint, int &addIdx, SubjectToStatus &addStatus)
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
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 setupCholeskyDecompositionProjected()
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 setupAuxiliaryQPbounds(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType useRelaxation)
returnValue getConstraints(Constraints *const _constraints) const
Provides additional tools for analysing QP solutions.
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)
returnValue computeInitialCholesky()
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds, const Constraints *const guessedConstraints)
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 printProperties()
Manages working sets of bounds (= box constraints).
#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)
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