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>
44#include <qpOASES/Matrices.hpp>
45
46
48
49
61class 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:
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
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
641 );
642
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
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 */
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