qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
QProblem.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of qpOASES.
3  *
4  * qpOASES -- An Implementation of the Online Active Set Strategy.
5  * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka,
6  * Christian Kirches et al. All rights reserved.
7  *
8  * qpOASES is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * qpOASES is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with qpOASES; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  */
23 
24 
37 #ifndef QPOASES_QPROBLEM_HPP
38 #define QPOASES_QPROBLEM_HPP
39 
40 
41 #include <qpOASES/QProblemB.hpp>
42 #include <qpOASES/Constraints.hpp>
44 #include <qpOASES/Matrices.hpp>
45 
46 
48 
49 
61 class QProblem : public QProblemB
62 {
63  /* allow SolutionAnalysis class to access private members */
64  friend class SolutionAnalysis;
65 
66  /*
67  * PUBLIC MEMBER FUNCTIONS
68  */
69  public:
71  QProblem( );
72 
78  QProblem( int_t _nV,
79  int_t _nC,
80  HessianType _hessianType = HST_UNKNOWN,
81  BooleanType allocDenseMats = BT_TRUE
82  );
83 
85  QProblem( const QProblem& rhs
86  );
87 
89  virtual ~QProblem( );
90 
92  virtual QProblem& operator=( const QProblem& rhs
93  );
94 
95 
99  virtual returnValue reset( );
100 
101 
124  const real_t* const _g,
125  Matrix *_A,
126  const real_t* const _lb,
128  const real_t* const _ub,
130  const real_t* const _lbA,
132  const real_t* const _ubA,
134  int_t& nWSR,
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,
144  const Constraints* const guessedConstraints = 0,
146  const real_t* const _R = 0
150  );
151 
152 
174  returnValue init( const real_t* const _H,
176  const real_t* const _g,
177  const real_t* const _A,
178  const real_t* const _lb,
180  const real_t* const _ub,
182  const real_t* const _lbA,
184  const real_t* const _ubA,
186  int_t& nWSR,
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,
196  const Constraints* const guessedConstraints = 0,
198  const real_t* const _R = 0
202  );
203 
226  returnValue init( const char* const H_file,
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,
238  int_t& nWSR,
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,
248  const Constraints* const guessedConstraints = 0,
250  const char* const R_file = 0
253  );
254 
255 
273  returnValue hotstart( const real_t* const g_new,
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,
282  int_t& nWSR,
284  real_t* const cputime = 0,
286  const Bounds* const guessedBounds = 0,
288  const Constraints* const guessedConstraints = 0
290  );
291 
312  returnValue hotstart( const char* const g_file,
313  const char* const lb_file,
315  const char* const ub_file,
317  const char* const lbA_file,
319  const char* const ubA_file,
321  int_t& nWSR,
323  real_t* const cputime = 0,
325  const Bounds* const guessedBounds = 0,
327  const Constraints* const guessedConstraints = 0
329  );
330 
331 
337  returnValue solveCurrentEQP ( const int_t n_rhs,
338  const real_t* g_in,
339  const real_t* lb_in,
341  const real_t* ub_in,
343  const real_t* lbA_in,
345  const real_t* ubA_in,
346  real_t* x_out,
347  real_t* y_out
348  );
349 
353  virtual returnValue getWorkingSet( real_t* workingSet
354  );
355 
359  virtual returnValue getWorkingSetBounds( real_t* workingSetB
360  );
361 
365  virtual returnValue getWorkingSetConstraints( real_t* workingSetC
366  );
367 
368 
372  inline returnValue getConstraints( Constraints& _constraints
373  ) const;
374 
375 
378  inline int_t getNC( ) const;
379 
382  inline int_t getNEC( ) const;
383 
386  inline int_t getNAC( ) const;
387 
390  inline int_t getNIAC( ) const;
391 
394  virtual int_t getNZ( ) const;
395 
396 
400  virtual returnValue getDualSolution( real_t* const yOpt
401  ) const;
402 
403 
406  returnValue setConstraintProduct( ConstraintProduct* const _constraintProduct
407  );
408 
409 
412  virtual returnValue printProperties( );
413 
417 
418 
419  /*
420  * PROTECTED MEMBER FUNCTIONS
421  */
422  protected:
425  returnValue clear( );
426 
429  returnValue copy( const QProblem& rhs
430  );
431 
444  returnValue solveInitialQP( const real_t* const xOpt,
445  const real_t* const yOpt,
446  const Bounds* const guessedBounds,
447  const Constraints* const guessedConstraints,
448  const real_t* const _R,
449  int_t& nWSR,
451  real_t* const cputime
453  );
454 
467  returnValue solveQP( const real_t* const g_new,
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,
476  int_t& nWSR,
478  real_t* const cputime,
480  int_t nWSRperformed = 0,
484  BooleanType isFirstCall = BT_TRUE
485  );
486 
487 
500  returnValue solveRegularisedQP( const real_t* const g_new,
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,
509  int_t& nWSR,
511  real_t* const cputime,
513  int_t nWSRperformed = 0,
516  BooleanType isFirstCall = BT_TRUE
517  );
518 
519 
522  /* \return SUCCESSFUL_RETURN \n
523  RET_HOTSTART_FAILED */
524  virtual returnValue updateActivitiesForHotstart( const real_t* const lb_new,
525  const real_t* const ub_new,
526  const real_t* const lbA_new,
527  const real_t* const ubA_new
528  );
529 
530 
534  virtual returnValue setupSubjectToType( );
535 
540  virtual returnValue setupSubjectToType( const real_t* const lb_new,
541  const real_t* const ub_new,
542  const real_t* const lbA_new,
543  const real_t* const ubA_new
544  );
545 
553 
560 
565 
566 
573  returnValue obtainAuxiliaryWorkingSet( const real_t* const xOpt,
575  const real_t* const yOpt,
577  const Bounds* const guessedBounds,
578  const Constraints* const guessedConstraints,
579  Bounds* auxiliaryBounds,
581  Constraints* auxiliaryConstraints
583  ) const;
584 
593  virtual returnValue setupAuxiliaryWorkingSet( const Bounds* const auxiliaryBounds,
594  const Constraints* const auxiliaryConstraints,
595  BooleanType setupAfresh
597  );
598 
601  returnValue setupAuxiliaryQPsolution( const real_t* const xOpt,
603  const real_t* const yOpt
605  );
606 
612 
618  returnValue setupAuxiliaryQPbounds( const Bounds* const auxiliaryBounds,
619  const Constraints* const auxiliaryConstraints,
620  BooleanType useRelaxation
621  );
622 
623 
629  virtual returnValue addConstraint( int_t number,
630  SubjectToStatus C_status,
631  BooleanType updateCholesky,
632  BooleanType ensureLI = BT_TRUE
633  );
634 
640  virtual returnValue addConstraint_checkLI( int_t number
641  );
642 
651  virtual returnValue addConstraint_ensureLI( int_t number,
652  SubjectToStatus C_status
653  );
654 
660  virtual returnValue addBound( int_t number,
661  SubjectToStatus B_status,
662  BooleanType updateCholesky,
663  BooleanType ensureLI = BT_TRUE
664  );
665 
670  virtual returnValue addBound_checkLI( int_t number
671  );
672 
681  virtual returnValue addBound_ensureLI( int_t number,
682  SubjectToStatus B_status
683  );
684 
690  virtual returnValue removeConstraint( int_t number,
691  BooleanType updateCholesky,
692  BooleanType allowFlipping = BT_FALSE,
693  BooleanType ensureNZC = BT_FALSE
694  );
695 
701  virtual returnValue removeBound( int_t number,
702  BooleanType updateCholesky,
703  BooleanType allowFlipping = BT_FALSE,
704  BooleanType ensureNZC = BT_FALSE
705  );
706 
707 
712  const int_t* const idxList,
713  const real_t* const num,
714  const real_t* const den,
715  real_t epsNum,
716  real_t epsDen,
717  real_t& t,
718  int_t& BC_idx
719  ) const;
720 
721 
726  BooleanType removeBoundNotConstraint,
727  int_t remIdx,
728  BooleanType &exchangeHappened,
729  BooleanType &addBoundNotConstraint,
730  int_t &addIdx,
731  SubjectToStatus &addStatus
732  );
733 
734 
738  virtual returnValue backsolveT( const real_t* const b,
739  BooleanType transposed,
740  real_t* const a
741  ) const;
742 
743 
746  returnValue determineDataShift( const real_t* const g_new,
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,
751  real_t* const delta_g,
752  real_t* const delta_lbA,
753  real_t* const delta_ubA,
754  real_t* const delta_lb,
755  real_t* const delta_ub,
756  BooleanType& Delta_bC_isZero,
757  BooleanType& Delta_bB_isZero
758  );
759 
764  virtual returnValue determineStepDirection( const real_t* const delta_g,
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,
769  BooleanType Delta_bC_isZero,
770  BooleanType Delta_bB_isZero,
771  real_t* const delta_xFX,
772  real_t* const delta_xFR,
773  real_t* const delta_yAC,
774  real_t* const delta_yFX
775  );
776 
782  returnValue performStep( const real_t* const delta_g,
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,
791  int_t& BC_idx,
792  SubjectToStatus& BC_status,
793  BooleanType& BC_isBound
794  );
795 
801  SubjectToStatus BC_status,
802  BooleanType BC_isBound
803  );
804 
805 
809  real_t getRelativeHomotopyLength( const real_t* const g_new,
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
814  );
815 
816 
820  virtual returnValue performRamping( );
821 
822 
824  returnValue updateFarBounds( real_t curFarBound,
825  int_t nRamp,
826  const real_t* const lb_new,
827  real_t* const lb_new_far,
828  const real_t* const ub_new,
829  real_t* const ub_new_far,
830  const real_t* const lbA_new,
831  real_t* const lbA_new_far,
832  const real_t* const ubA_new,
833  real_t* const ubA_new_far
834  ) const;
835 
836 
840 
841 
849  virtual returnValue setupAuxiliaryQP( const Bounds* const guessedBounds,
850  const Constraints* const guessedConstraints
851  );
852 
857  BooleanType shallRefactorise( const Bounds* const guessedBounds,
858  const Constraints* const guessedConstraints
859  ) const;
860 
867  const real_t* const _g,
868  Matrix *_A,
869  const real_t* const _lb,
871  const real_t* const _ub,
873  const real_t* const _lbA,
875  const real_t* const _ubA
877  );
878 
879 
886  returnValue setupQPdata( const real_t* const _H,
888  const real_t* const _g,
889  const real_t* const _A,
890  const real_t* const _lb,
892  const real_t* const _ub,
894  const real_t* const _lbA,
896  const real_t* const _ubA
898  );
899 
908  returnValue setupQPdataFromFile( const char* const H_file,
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
920  );
921 
927  returnValue loadQPvectorsFromFile( const char* const g_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,
936  real_t* const g_new,
937  real_t* const lb_new,
938  real_t* const ub_new,
939  real_t* const lbA_new,
940  real_t* const ubA_new
941  ) const;
942 
943 
947  int_t BC_idx,
948  SubjectToStatus BC_status,
949  BooleanType BC_isBound,
950  real_t homotopyLength,
951  BooleanType isFirstCall = BT_TRUE
952  );
953 
954 
959  inline returnValue setA( Matrix *A_new
960  );
961 
966  inline returnValue setA( const real_t* const A_new
967  );
968 
969 
973  inline returnValue setLBA( const real_t* const lbA_new
974  );
975 
980  inline returnValue setLBA( int_t number,
981  real_t value
982  );
983 
987  inline returnValue setUBA( const real_t* const ubA_new
988  );
989 
994  inline returnValue setUBA( int_t number,
995  real_t value
996  );
997 
998 
1003  returnValue dropInfeasibles ( int_t BC_number,
1004  SubjectToStatus BC_status,
1005  BooleanType BC_isBound,
1006  real_t *xiB,
1007  real_t *xiC
1008  );
1009 
1015  returnValue areBoundsConsistent(const real_t* const lb,
1016  const real_t* const ub,
1017  const real_t* const lbA,
1018  const real_t* const ubA
1019  ) const;
1020 
1021 
1022  public:
1026  returnValue writeQpDataIntoMatFile( const char* const filename
1027  ) const;
1028 
1032  returnValue writeQpWorkspaceIntoMatFile( const char* const filename
1033  );
1034 
1035 
1036 
1037  /*
1038  * PROTECTED MEMBER VARIABLES
1039  */
1040  protected:
1070 };
1071 
1072 
1074 
1075 #include <qpOASES/QProblem.ipp>
1076 
1077 #endif /* QPOASES_QPROBLEM_HPP */
1078 
1079 
1080 /*
1081  * end of file
1082  */
int_t getNIAC() const
Definition: QProblem.ipp:92
virtual returnValue backsolveT(const real_t *const b, BooleanType transposed, real_t *const a) const
Definition: QProblem.cpp:4518
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
int_t sizeT
Definition: QProblem.hpp:1051
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
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
returnValue writeQpWorkspaceIntoMatFile(const char *const filename)
Definition: QProblem.cpp:6407
Interface for specifying user-defined evaluations of constraint products.
Definition: ConstraintProduct.hpp:57
real_t * T
Definition: QProblem.hpp:1049
Manages working sets of constraints.
Definition: Constraints.hpp:56
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 addConstraint_ensureLI(int_t number, SubjectToStatus C_status)
Definition: QProblem.cpp:3117
real_t * Ax_l
Definition: QProblem.hpp:1055
real_t * tempC
Definition: QProblem.hpp:1069
real_t * Ax
Definition: QProblem.hpp:1053
virtual returnValue getWorkingSetBounds(real_t *workingSetB)
Definition: QProblem.cpp:814
real_t * delta_yAC_TMP
Definition: QProblem.hpp:1067
int int_t
Definition: Types.hpp:180
Implements the online active set strategy for box-constrained QPs.
Definition: QProblemB.hpp:63
returnValue setupAuxiliaryQPgradient()
Definition: QProblem.cpp:2602
virtual returnValue getDualSolution(real_t *const yOpt) const
Definition: QProblem.cpp:859
virtual returnValue performDriftCorrection()
Definition: QProblem.cpp:5558
returnValue setupAuxiliaryQPsolution(const real_t *const xOpt, const real_t *const yOpt)
Definition: QProblem.cpp:2545
virtual returnValue removeConstraint(int_t number, BooleanType updateCholesky, BooleanType allowFlipping=BT_FALSE, BooleanType ensureNZC=BT_FALSE)
Definition: QProblem.cpp:3782
virtual returnValue addBound_checkLI(int_t number)
Definition: QProblem.cpp:3487
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
HessianType
Definition: Types.hpp:248
real_t * ZFR_delta_xFRz
Definition: QProblem.hpp:1064
returnValue setLBA(const real_t *const lbA_new)
Definition: QProblem.ipp:186
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
returnValue setA(Matrix *A_new)
Definition: QProblem.ipp:107
virtual returnValue setupInitialCholesky()
Definition: QProblem.cpp:2135
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
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 removeBound(int_t number, BooleanType updateCholesky, BooleanType allowFlipping=BT_FALSE, BooleanType ensureNZC=BT_FALSE)
Definition: QProblem.cpp:4018
virtual returnValue performRamping()
Definition: QProblem.cpp:5416
virtual returnValue addConstraint(int_t number, SubjectToStatus C_status, BooleanType updateCholesky, BooleanType ensureLI=BT_TRUE)
Definition: QProblem.cpp:2819
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
returnValue clear()
Definition: QProblem.cpp:1082
Definition: Types.hpp:206
SubjectToStatus
Definition: Types.hpp:272
int_t getNEC() const
Definition: QProblem.ipp:74
real_t * lbA
Definition: QProblem.hpp:1044
BooleanType freeConstraintMatrix
Definition: QProblem.hpp:1041
virtual int_t getNZ() const
Definition: QProblem.cpp:849
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
virtual returnValue getWorkingSetConstraints(real_t *workingSetC)
Definition: QProblem.cpp:823
returnValue getConstraints(Constraints &_constraints) const
Definition: QProblem.ipp:48
int_t getNC() const
Definition: QProblem.ipp:65
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 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 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
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
virtual returnValue setupSubjectToType()
Definition: QProblem.cpp:1935
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
returnValue setConstraintProduct(ConstraintProduct *const _constraintProduct)
Definition: QProblem.cpp:885
ConstraintProduct * constraintProduct
Definition: QProblem.hpp:1060
real_t * ub
Definition: QProblemB.hpp:976
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
returnValue ensureNonzeroCurvature(BooleanType removeBoundNotConstraint, int_t remIdx, BooleanType &exchangeHappened, BooleanType &addBoundNotConstraint, int_t &addIdx, SubjectToStatus &addStatus)
Definition: QProblem.cpp:4278
virtual returnValue computeProjectedCholesky()
Definition: QProblem.cpp:2036
Definition: Types.hpp:205
virtual returnValue addBound_ensureLI(int_t number, SubjectToStatus B_status)
Definition: QProblem.cpp:3596
real_t * tempA
Definition: QProblem.hpp:1062
returnValue setupAuxiliaryQPbounds(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType useRelaxation)
Definition: QProblem.cpp:2668
virtual returnValue setupSubjectToType()
Definition: QProblemB.cpp:1281
real_t * tempB
Definition: QProblem.hpp:1063
Provides additional tools for analysing QP solutions.
Definition: SolutionAnalysis.hpp:57
BooleanType shallRefactorise(const Bounds *const guessedBounds, const Constraints *const guessedConstraints) const
Definition: QProblem.cpp:5746
returnValue getFreeVariablesFlags(BooleanType *varIsFree)
Definition: QProblem.cpp:1058
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:64
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
Abstract base class for interfacing tailored matrix-vector operations.
Definition: Matrices.hpp:59
Definition: Types.hpp:256
virtual returnValue addConstraint_checkLI(int_t number)
Definition: QProblem.cpp:2982
real_t * Ax_u
Definition: QProblem.hpp:1057
virtual returnValue reset()
Definition: QProblem.cpp:219
virtual ~QProblem()
Definition: QProblem.cpp:194
returnValue copy(const QProblem &rhs)
Definition: QProblem.cpp:1181
real_t * delta_xFRz
Definition: QProblem.hpp:1066
Matrix * A
Definition: QProblem.hpp:1042
Constraints constraints
Definition: QProblem.hpp:1047
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds, const Constraints *const guessedConstraints)
Definition: QProblem.cpp:5657
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds)
Definition: QProblemB.cpp:2980
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
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
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
QProblem()
Definition: QProblem.cpp:51
returnValue changeActiveSet(int_t BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound)
Definition: QProblem.cpp:5284
real_t * lb
Definition: QProblemB.hpp:975
virtual returnValue getWorkingSet(real_t *workingSet)
Definition: QProblem.cpp:794
returnValue writeQpDataIntoMatFile(const char *const filename) const
Definition: QProblem.cpp:6363
virtual returnValue printProperties()
Definition: QProblem.cpp:896
virtual returnValue addBound(int_t number, SubjectToStatus B_status, BooleanType updateCholesky, BooleanType ensureLI=BT_TRUE)
Definition: QProblem.cpp:3307
int_t getNAC() const
Definition: QProblem.ipp:83
Manages working sets of bounds (i.e. box constraints).
Definition: Bounds.hpp:56
returnValue dropInfeasibles(int_t BC_number, SubjectToStatus BC_status, BooleanType BC_isBound, real_t *xiB, real_t *xiC)
Definition: QProblem.cpp:6264
Implements the online active set strategy for QPs with general constraints.
Definition: QProblem.hpp:61
virtual returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType setupAfresh)
Definition: QProblem.cpp:2351
virtual QProblem & operator=(const QProblem &rhs)
Definition: QProblem.cpp:203
virtual returnValue setupTQfactorisation()
Definition: QProblem.cpp:2169
returnValue setUBA(const real_t *const ubA_new)
Definition: QProblem.ipp:234
real_t * delta_xFRy
Definition: QProblem.hpp:1065
real_t * ubA
Definition: QProblem.hpp:1045
BooleanType
Definition: Types.hpp:203
real_t * Q
Definition: QProblem.hpp:1050
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices...
Definition: Matrices.hpp:292
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