qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
QProblemB.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 
38 #ifndef QPOASES_QPROBLEMB_HPP
39 #define QPOASES_QPROBLEMB_HPP
40 
41 
42 #include <qpOASES/Flipper.hpp>
43 #include <qpOASES/Options.hpp>
44 #include <qpOASES/Matrices.hpp>
45 
46 
48 
49 
50 class SolutionAnalysis;
51 
63 class QProblemB
64 {
65  /* allow SolutionAnalysis class to access private members */
66  friend class SolutionAnalysis;
67 
68  /*
69  * PUBLIC MEMBER FUNCTIONS
70  */
71  public:
73  QProblemB( );
74 
80  QProblemB( int_t _nV,
81  HessianType _hessianType = HST_UNKNOWN,
82  BooleanType allocDenseMats = BT_TRUE
83  );
84 
86  QProblemB( const QProblemB& rhs
87  );
88 
90  virtual ~QProblemB( );
91 
93  virtual QProblemB& operator=( const QProblemB& rhs
94  );
95 
96 
100  virtual returnValue reset( );
101 
102 
124  const real_t* const _g,
125  const real_t* const _lb,
127  const real_t* const _ub,
129  int_t& nWSR,
131  real_t* const cputime = 0,
133  const real_t* const xOpt = 0,
135  const real_t* const yOpt = 0,
137  const Bounds* const guessedBounds = 0,
139  const real_t* const _R = 0
143  );
144 
165  returnValue init( const real_t* const _H,
167  const real_t* const _g,
168  const real_t* const _lb,
170  const real_t* const _ub,
172  int_t& nWSR,
174  real_t* const cputime = 0,
176  const real_t* const xOpt = 0,
178  const real_t* const yOpt = 0,
180  const Bounds* const guessedBounds = 0,
182  const real_t* const _R = 0
186  );
187 
208  returnValue init( const char* const H_file,
210  const char* const g_file,
211  const char* const lb_file,
213  const char* const ub_file,
215  int_t& nWSR,
217  real_t* const cputime = 0,
219  const real_t* const xOpt = 0,
221  const real_t* const yOpt = 0,
223  const Bounds* const guessedBounds = 0,
225  const char* const R_file = 0
228  );
229 
230 
249  returnValue hotstart( const real_t* const g_new,
250  const real_t* const lb_new,
252  const real_t* const ub_new,
254  int_t& nWSR,
256  real_t* const cputime = 0,
258  const Bounds* const guessedBounds = 0
260  );
261 
283  returnValue hotstart( const char* const g_file,
284  const char* const lb_file,
286  const char* const ub_file,
288  int_t& nWSR,
290  real_t* const cputime = 0,
292  const Bounds* const guessedBounds = 0
294  );
295 
296 
300  virtual returnValue getWorkingSet( real_t* workingSet
301  );
302 
306  virtual returnValue getWorkingSetBounds( real_t* workingSetB
307  );
308 
312  virtual returnValue getWorkingSetConstraints( real_t* workingSetC
313  );
314 
315 
319  inline returnValue getBounds( Bounds& _bounds
320  ) const;
321 
322 
325  inline int_t getNV( ) const;
326 
329  inline int_t getNFR( ) const;
330 
333  inline int_t getNFX( ) const;
334 
337  inline int_t getNFV( ) const;
338 
341  virtual int_t getNZ( ) const;
342 
343 
347  real_t getObjVal( ) const;
348 
351  real_t getObjVal( const real_t* const _x
352  ) const;
353 
357  returnValue getPrimalSolution( real_t* const xOpt
358  ) const;
359 
363  virtual returnValue getDualSolution( real_t* const yOpt
364  ) const;
365 
366 
369  inline QProblemStatus getStatus( ) const;
370 
371 
375  inline BooleanType isInitialised( ) const;
376 
380  inline BooleanType isSolved( ) const;
381 
385  inline BooleanType isInfeasible( ) const;
386 
390  inline BooleanType isUnbounded( ) const;
391 
392 
395  inline HessianType getHessianType( ) const;
396 
399  inline returnValue setHessianType( HessianType _hessianType
400  );
401 
405  inline BooleanType usingRegularisation( ) const;
406 
409  inline Options getOptions( ) const;
410 
413  inline returnValue setOptions( const Options& _options
414  );
415 
418  inline PrintLevel getPrintLevel( ) const;
419 
422  returnValue setPrintLevel( PrintLevel _printlevel
423  );
424 
425 
428  inline uint_t getCount( ) const;
429 
432  inline returnValue resetCounter( );
433 
434 
437  virtual returnValue printProperties( );
438 
441  returnValue printOptions( ) const;
442 
443 
444  /*
445  * PROTECTED MEMBER FUNCTIONS
446  */
447  protected:
450  returnValue clear( );
451 
454  returnValue copy( const QProblemB& rhs
455  );
456 
463 
467  virtual returnValue setupSubjectToType( );
468 
472  virtual returnValue setupSubjectToType( const real_t* const lb_new,
473  const real_t* const ub_new
474  );
475 
484  virtual returnValue computeCholesky( );
485 
486 
493 
499  returnValue obtainAuxiliaryWorkingSet( const real_t* const xOpt,
501  const real_t* const yOpt,
503  const Bounds* const guessedBounds,
504  Bounds* auxiliaryBounds
506  ) const;
507 
514  const real_t* const ub
515  ) const;
516 
520  virtual returnValue backsolveR( const real_t* const b,
521  BooleanType transposed,
522  real_t* const a
523  ) const;
524 
529  virtual returnValue backsolveR( const real_t* const b,
530  BooleanType transposed,
531  BooleanType removingBound,
532  real_t* const a
533  ) const;
534 
535 
538  returnValue determineDataShift( const real_t* const g_new,
539  const real_t* const lb_new,
540  const real_t* const ub_new,
541  real_t* const delta_g,
542  real_t* const delta_lb,
543  real_t* const delta_ub,
544  BooleanType& Delta_bB_isZero
545  );
546 
547 
552  const real_t* const _g,
553  const real_t* const _lb,
555  const real_t* const _ub
557  );
558 
565  returnValue setupQPdata( const real_t* const _H,
567  const real_t* const _g,
568  const real_t* const _lb,
570  const real_t* const _ub
572  );
573 
582  returnValue setupQPdataFromFile( const char* const H_file,
584  const char* const g_file,
585  const char* const lb_file,
587  const char* const ub_file
589  );
590 
596  returnValue loadQPvectorsFromFile( const char* const g_file,
597  const char* const lb_file,
599  const char* const ub_file,
601  real_t* const g_new,
602  real_t* const lb_new,
603  real_t* const ub_new
604  ) const;
605 
606 
613  BooleanType doThrowError = BT_FALSE
614  );
615 
616 
620  BooleanType isCPUtimeLimitExceeded( const real_t* const cputime,
621  real_t starttime,
622  int_t nWSR
623  ) const;
624 
625 
630 
631 
634  inline returnValue setH( SymmetricMatrix* H_new
635  );
636 
642  inline returnValue setH( const real_t* const H_new
643  );
644 
648  inline returnValue setG( const real_t* const g_new
649  );
650 
654  inline returnValue setLB( const real_t* const lb_new
655  );
656 
661  inline returnValue setLB( int_t number,
662  real_t value
663  );
664 
668  inline returnValue setUB( const real_t* const ub_new
669  );
670 
675  inline returnValue setUB( int_t number,
676  real_t value
677  );
678 
679 
682  inline void computeGivens( real_t xold,
683  real_t yold,
684  real_t& xnew,
685  real_t& ynew,
686  real_t& c,
687  real_t& s
688  ) const;
689 
692  inline void applyGivens( real_t c,
693  real_t s,
694  real_t nu,
695  real_t xold,
697  real_t yold,
699  real_t& xnew,
701  real_t& ynew
703  ) const;
704 
705 
706 
710  real_t getRelativeHomotopyLength( const real_t* const g_new,
711  const real_t* const lb_new,
712  const real_t* const ub_new
713  );
714 
718  virtual returnValue performRamping( );
719 
720 
722  returnValue updateFarBounds( real_t curFarBound,
723  int_t nRamp,
724  const real_t* const lb_new,
725  real_t* const lb_new_far,
726  const real_t* const ub_new,
727  real_t* const ub_new_far
728  ) const;
729 
730 
735  const int_t* const idxList,
736  const SubjectTo* const subjectTo,
737  const real_t* const num,
738  const real_t* const den,
739  real_t epsNum,
740  real_t epsDen,
741  real_t& t,
742  int_t& BC_idx
743  ) const;
744 
748  inline BooleanType isBlocking( real_t num,
749  real_t den,
750  real_t epsNum,
751  real_t epsDen,
752  real_t& t
754  ) const;
755 
756 
762  real_t diagVal = 1.0
763  );
764 
765 
766  /*
767  * PRIVATE MEMBER FUNCTIONS
768  */
769  private:
781  returnValue solveInitialQP( const real_t* const xOpt,
782  const real_t* const yOpt,
783  const Bounds* const guessedBounds,
784  const real_t* const _R,
785  int_t& nWSR,
787  real_t* const cputime
789  );
790 
803  returnValue solveQP( const real_t* const g_new,
804  const real_t* const lb_new,
806  const real_t* const ub_new,
808  int_t& nWSR,
810  real_t* const cputime,
812  int_t nWSRperformed = 0,
816  BooleanType isFirstCall = BT_TRUE
817  );
818 
819 
832  returnValue solveRegularisedQP( const real_t* const g_new,
833  const real_t* const lb_new,
835  const real_t* const ub_new,
837  int_t& nWSR,
839  real_t* const cputime,
841  int_t nWSRperformed = 0,
844  BooleanType isFirstCall = BT_TRUE
845  );
846 
847 
855  returnValue setupAuxiliaryWorkingSet( const Bounds* const auxiliaryBounds,
856  BooleanType setupAfresh
858  );
859 
862  returnValue setupAuxiliaryQPsolution( const real_t* const xOpt,
864  const real_t* const yOpt
866  );
867 
873 
880  );
881 
882 
883  protected:
889  virtual returnValue setupAuxiliaryQP( const Bounds* const guessedBounds
890  );
891 
892  private:
896  returnValue determineStepDirection( const real_t* const delta_g,
897  const real_t* const delta_lb,
898  const real_t* const delta_ub,
899  BooleanType Delta_bB_isZero,
900  real_t* const delta_xFX,
901  real_t* const delta_xFR,
902  real_t* const delta_yFX
903  );
904 
910  returnValue performStep( const real_t* const delta_g,
911  const real_t* const delta_lb,
912  const real_t* const delta_ub,
913  const real_t* const delta_xFX,
914  const real_t* const delta_xFR,
915  const real_t* const delta_yFX,
916  int_t& BC_idx,
917  SubjectToStatus& BC_status
918  );
919 
925  SubjectToStatus BC_status
926  );
927 
931 
936  BooleanType shallRefactorise( const Bounds* const guessedBounds
937  ) const;
938 
939 
943  returnValue addBound( int_t number,
944  SubjectToStatus B_status,
945  BooleanType updateCholesky
946  );
947 
952  returnValue removeBound( int_t number,
953  BooleanType updateCholesky
954  );
955 
956 
960  int_t BC_idx,
961  SubjectToStatus BC_status,
962  real_t homotopyLength,
963  BooleanType isFirstCall = BT_TRUE
964  );
965 
966 
967  /*
968  * PROTECTED MEMBER VARIABLES
969  */
970  protected:
996  uint_t count;
1009 };
1010 
1011 
1013 
1014 #include <qpOASES/QProblemB.ipp>
1015 
1016 #endif /* QPOASES_QPROBLEMB_HPP */
1017 
1018 
1019 /*
1020  * end of file
1021  */
QProblem::getNAC
int_t getNAC() const
Definition: QProblem.ipp:83
Matrices.hpp
Matrix
Abstract base class for interfacing tailored matrix-vector operations.
Definition: Matrices.hpp:59
TabularOutput
Stores internal information for tabular (debugging) output.
Definition: Types.hpp:302
QProblemB::lb
real_t * lb
Definition: QProblemB.hpp:975
QProblemB::getDualSolution
virtual returnValue getDualSolution(real_t *const yOpt) const
Definition: QProblemB.cpp:799
QProblemB::applyGivens
void applyGivens(real_t c, real_t s, real_t nu, real_t xold, real_t yold, real_t &xnew, real_t &ynew) const
Definition: QProblemB.ipp:447
real_t
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
RET_INDEX_OUT_OF_BOUNDS
@ RET_INDEX_OUT_OF_BOUNDS
Definition: MessageHandling.hpp:70
QProblem::tempC
real_t * tempC
Definition: QProblem.hpp:1069
Constraints::getNAC
int_t getNAC() const
Definition: Constraints.ipp:83
SymmetricMatrix
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices.
Definition: Matrices.hpp:292
Options
Manages all user-specified options for solving QPs.
Definition: Options.hpp:56
QProblemB::setupAuxiliaryQPgradient
returnValue setupAuxiliaryQPgradient()
Definition: QProblemB.cpp:2871
QProblemB::removeBound
returnValue removeBound(int_t number, BooleanType updateCholesky)
Definition: QProblemB.cpp:3554
QProblemB::printProperties
virtual returnValue printProperties()
Definition: QProblemB.cpp:873
QProblemB::loadQPvectorsFromFile
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
Definition: QProblemB.cpp:1877
QProblemB.ipp
QProblem::lbA
real_t * lbA
Definition: QProblem.hpp:1044
Constraints::getNEC
int_t getNEC() const
Definition: Constraints.ipp:56
QProblemB::getStatus
QProblemStatus getStatus() const
Definition: QProblemB.ipp:100
QProblemB::setupAuxiliaryQPsolution
returnValue setupAuxiliaryQPsolution(const real_t *const xOpt, const real_t *const yOpt)
Definition: QProblemB.cpp:2830
END_NAMESPACE_QPOASES
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
QProblemB::isBlocking
BooleanType isBlocking(real_t num, real_t den, real_t epsNum, real_t epsDen, real_t &t) const
Definition: QProblemB.ipp:474
QProblemB::ramp0
real_t ramp0
Definition: QProblemB.hpp:1000
BooleanType
BooleanType
Definition: Types.hpp:203
QProblemB::getNZ
virtual int_t getNZ() const
Definition: QProblemB.cpp:690
Matrix::getRowNorm
virtual real_t getRowNorm(int_t rNum, int_t type=2) const =0
QProblemB::bounds
Bounds bounds
Definition: QProblemB.hpp:978
QProblemB::backsolveR
virtual returnValue backsolveR(const real_t *const b, BooleanType transposed, real_t *const a) const
Definition: QProblemB.cpp:1623
QProblemB::getOptions
Options getOptions() const
Definition: QProblemB.ipp:182
QProblem::Ax_l
real_t * Ax_l
Definition: QProblem.hpp:1055
Options.hpp
QProblemB::clear
returnValue clear()
Definition: QProblemB.cpp:1024
QProblemStatus
QProblemStatus
Definition: Types.hpp:233
HessianType
HessianType
Definition: Types.hpp:248
Constraints
Manages working sets of constraints.
Definition: Constraints.hpp:56
QProblemB::tau
real_t tau
Definition: QProblemB.hpp:986
QProblemB::QProblemB
QProblemB()
Definition: QProblemB.cpp:51
BEGIN_NAMESPACE_QPOASES
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
QProblemB::areBoundsConsistent
returnValue areBoundsConsistent(const real_t *const lb, const real_t *const ub) const
Definition: QProblemB.cpp:1954
Bounds
Manages working sets of bounds (i.e. box constraints).
Definition: Bounds.hpp:56
QProblemB::solveRegularisedQP
returnValue solveRegularisedQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime, int_t nWSRperformed=0, BooleanType isFirstCall=BT_TRUE)
Definition: QProblemB.cpp:2654
QProblem::getConstraints
returnValue getConstraints(Constraints &_constraints) const
Definition: QProblem.ipp:48
QProblemB::freeHessian
BooleanType freeHessian
Definition: QProblemB.hpp:971
QProblemB::performRatioTest
returnValue performRatioTest(int_t nIdx, const int_t *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_t &BC_idx) const
Definition: QProblemB.cpp:2065
Constraints::getNC
int_t getNC() const
Definition: Constraints.ipp:47
BT_TRUE
@ BT_TRUE
Definition: Types.hpp:206
QProblemB::isSolved
BooleanType isSolved() const
Definition: QProblemB.ipp:121
Matrix::times
virtual returnValue times(int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const =0
QProblemB::isUnbounded
BooleanType isUnbounded() const
Definition: QProblemB.ipp:142
QProblem::Ax_u
real_t * Ax_u
Definition: QProblem.hpp:1057
QProblemB::changeActiveSet
returnValue changeActiveSet(int_t BC_idx, SubjectToStatus BC_status)
Definition: QProblemB.cpp:3354
QProblemB::count
uint_t count
Definition: QProblemB.hpp:996
QProblem::getNIAC
int_t getNIAC() const
Definition: QProblem.ipp:92
QProblemB
Implements the online active set strategy for box-constrained QPs.
Definition: QProblemB.hpp:63
QProblemB::ub
real_t * ub
Definition: QProblemB.hpp:976
isZero
BooleanType isZero(real_t x, real_t TOL=ZERO)
Definition: Utils.ipp:60
QProblem::getNC
int_t getNC() const
Definition: QProblem.ipp:65
QProblemB::H
SymmetricMatrix * H
Definition: QProblemB.hpp:972
QProblemB::flipper
Flipper flipper
Definition: QProblemB.hpp:1006
QProblemB::setupQPdataFromFile
returnValue setupQPdataFromFile(const char *const H_file, const char *const g_file, const char *const lb_file, const char *const ub_file)
Definition: QProblemB.cpp:1805
SolutionAnalysis
Provides additional tools for analysing QP solutions.
Definition: SolutionAnalysis.hpp:57
QProblemB::computeGivens
void computeGivens(real_t xold, real_t yold, real_t &xnew, real_t &ynew, real_t &c, real_t &s) const
Definition: QProblemB.ipp:409
SymSparseMat
Interfaces matrix-vector operations tailored to symmetric sparse matrices.
Definition: Matrices.hpp:936
QProblemB::getBounds
returnValue getBounds(Bounds &_bounds) const
Definition: QProblemB.ipp:48
QProblemB::computeCholesky
virtual returnValue computeCholesky()
Definition: QProblemB.cpp:1366
QProblemB::setupAuxiliaryQPbounds
returnValue setupAuxiliaryQPbounds(BooleanType useRelaxation)
Definition: QProblemB.cpp:2911
QProblemB::x
real_t * x
Definition: QProblemB.hpp:983
QProblemB::determineDataShift
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)
Definition: QProblemB.cpp:1694
QProblemB::copy
returnValue copy(const QProblemB &rhs)
Definition: QProblemB.cpp:1081
QProblemB::performRamping
virtual returnValue performRamping()
Definition: QProblemB.cpp:2163
INFTY
const real_t INFTY
Definition: Constants.hpp:61
DenseMatrix
Interfaces matrix-vector operations tailored to general dense matrices.
Definition: Matrices.hpp:328
BT_FALSE
@ BT_FALSE
Definition: Types.hpp:205
QProblemB::setHessianType
returnValue setHessianType(HessianType _hessianType)
Definition: QProblemB.ipp:160
QProblemB::init
returnValue init(SymmetricMatrix *_H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub, 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 real_t *const _R=0)
Definition: QProblemB.cpp:253
QProblemB::R
real_t * R
Definition: QProblemB.hpp:980
SubjectTo
Base class for managing working sets of bounds and constraints.
Definition: SubjectTo.hpp:56
QProblemB::y
real_t * y
Definition: QProblemB.hpp:984
QProblem::setLBA
returnValue setLBA(const real_t *const lbA_new)
Definition: QProblem.ipp:186
QProblem::Ax
real_t * Ax
Definition: QProblem.hpp:1053
QProblem::A
Matrix * A
Definition: QProblem.hpp:1042
QProblemB::status
QProblemStatus status
Definition: QProblemB.hpp:988
QProblemB::setUB
returnValue setUB(const real_t *const ub_new)
Definition: QProblemB.ipp:360
QProblemB::determineStepDirection
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)
Definition: QProblemB.cpp:3042
QProblemB::getCount
uint_t getCount() const
Definition: QProblemB.ipp:216
QProblemB::printOptions
returnValue printOptions() const
Definition: QProblemB.cpp:1010
QProblemB::g
real_t * g
Definition: QProblemB.hpp:974
QProblemB::getWorkingSet
virtual returnValue getWorkingSet(real_t *workingSet)
Definition: QProblemB.cpp:644
SubjectToStatus
SubjectToStatus
Definition: Types.hpp:272
QProblemB::getPrintLevel
PrintLevel getPrintLevel() const
Definition: QProblemB.ipp:206
returnValue
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:64
QProblemB::obtainAuxiliaryWorkingSet
returnValue obtainAuxiliaryWorkingSet(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, Bounds *auxiliaryBounds) const
Definition: QProblemB.cpp:1479
QProblemB::performDriftCorrection
virtual returnValue performDriftCorrection()
Definition: QProblemB.cpp:3405
QProblem::constraints
Constraints constraints
Definition: QProblem.hpp:1047
QProblemB::determineHessianType
returnValue determineHessianType()
Definition: QProblemB.cpp:1176
QProblemB::setupInitialCholesky
virtual returnValue setupInitialCholesky()
Definition: QProblemB.cpp:1447
QProblemB::operator=
virtual QProblemB & operator=(const QProblemB &rhs)
Definition: QProblemB.cpp:195
QProblem::getNEC
int_t getNEC() const
Definition: QProblem.ipp:74
QProblemB::addBound
returnValue addBound(int_t number, SubjectToStatus B_status, BooleanType updateCholesky)
Definition: QProblemB.cpp:3484
QProblemB::setupQPdata
returnValue setupQPdata(SymmetricMatrix *_H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub)
Definition: QProblemB.cpp:1757
QProblemB::unbounded
BooleanType unbounded
Definition: QProblemB.hpp:991
RET_INVALID_ARGUMENTS
@ RET_INVALID_ARGUMENTS
Definition: MessageHandling.hpp:71
QProblemB::setOptions
returnValue setOptions(const Options &_options)
Definition: QProblemB.ipp:191
Flipper.hpp
QProblemB::isInfeasible
BooleanType isInfeasible() const
Definition: QProblemB.ipp:133
QProblemB::performStep
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_t &BC_idx, SubjectToStatus &BC_status)
Definition: QProblemB.cpp:3209
QProblemB::solveInitialQP
returnValue solveInitialQP(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, const real_t *const _R, int_t &nWSR, real_t *const cputime)
Definition: QProblemB.cpp:2259
Flipper
Auxiliary class for storing a copy of the current matrix factorisations.
Definition: Flipper.hpp:57
QProblemB::getObjVal
real_t getObjVal() const
Definition: QProblemB.cpp:700
Constraints::getNIAC
int_t getNIAC() const
Definition: Constraints.ipp:92
QProblemB::getHessianType
HessianType getHessianType() const
Definition: QProblemB.ipp:151
QProblemB::shallRefactorise
BooleanType shallRefactorise(const Bounds *const guessedBounds) const
Definition: QProblemB.cpp:3456
QProblemB::setupSubjectToType
virtual returnValue setupSubjectToType()
Definition: QProblemB.cpp:1281
QProblemB::rampOffset
int_t rampOffset
Definition: QProblemB.hpp:1002
SUCCESSFUL_RETURN
@ SUCCESSFUL_RETURN
Definition: MessageHandling.hpp:68
QProblem::setUBA
returnValue setUBA(const real_t *const ubA_new)
Definition: QProblem.ipp:234
QProblemB::getWorkingSetConstraints
virtual returnValue getWorkingSetConstraints(real_t *workingSetC)
Definition: QProblemB.cpp:678
QProblemB::getNV
int_t getNV() const
Definition: QProblemB.ipp:64
THROWERROR
#define THROWERROR(retval)
Definition: MessageHandling.hpp:456
QProblemB::tabularOutput
TabularOutput tabularOutput
Definition: QProblemB.hpp:1008
QProblemB::usingRegularisation
BooleanType usingRegularisation() const
Definition: QProblemB.ipp:170
QProblem::freeConstraintMatrix
BooleanType freeConstraintMatrix
Definition: QProblem.hpp:1041
QProblemB::setPrintLevel
returnValue setPrintLevel(PrintLevel _printlevel)
Definition: QProblemB.cpp:824
ST_DISABLED
@ ST_DISABLED
Definition: Types.hpp:266
QProblemB::setLB
returnValue setLB(const real_t *const lb_new)
Definition: QProblemB.ipp:312
QProblemB::hessianType
HessianType hessianType
Definition: QProblemB.hpp:993
QProblemB::haveCholesky
BooleanType haveCholesky
Definition: QProblemB.hpp:981
QProblem::ubA
real_t * ubA
Definition: QProblem.hpp:1045
QProblemB::regulariseHessian
returnValue regulariseHessian()
Definition: QProblemB.cpp:1999
QProblemB::getRelativeHomotopyLength
real_t getRelativeHomotopyLength(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new)
Definition: QProblemB.cpp:2113
QProblemB::printIteration
returnValue printIteration(int_t iter, int_t BC_idx, SubjectToStatus BC_status, real_t homotopyLength, BooleanType isFirstCall=BT_TRUE)
Definition: QProblemB.cpp:3692
QProblemB::delta_xFR_TMP
real_t * delta_xFR_TMP
Definition: QProblemB.hpp:998
QProblemB::getPrimalSolution
returnValue getPrimalSolution(real_t *const xOpt) const
Definition: QProblemB.cpp:774
QProblemB::infeasible
BooleanType infeasible
Definition: QProblemB.hpp:990
QProblemB::regVal
real_t regVal
Definition: QProblemB.hpp:994
QProblemB::createDiagSparseMat
SymSparseMat * createDiagSparseMat(int_t n, real_t diagVal=1.0)
Definition: QProblemB.cpp:2038
QProblemB::updateFarBounds
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
Definition: QProblemB.cpp:2202
QProblemB::resetCounter
returnValue resetCounter()
Definition: QProblemB.ipp:225
QProblemB::getNFX
int_t getNFX() const
Definition: QProblemB.ipp:82
QProblemB::options
Options options
Definition: QProblemB.hpp:1004
QProblemB::reset
virtual returnValue reset()
Definition: QProblemB.cpp:210
QProblemB::setupAuxiliaryQP
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds)
Definition: QProblemB.cpp:2980
QProblemB::isInitialised
BooleanType isInitialised() const
Definition: QProblemB.ipp:109
RET_QPOBJECT_NOT_SETUP
@ RET_QPOBJECT_NOT_SETUP
Definition: MessageHandling.hpp:100
QProblem::setA
returnValue setA(Matrix *A_new)
Definition: QProblem.ipp:107
HST_UNKNOWN
@ HST_UNKNOWN
Definition: Types.hpp:256
QProblemB::hotstart
returnValue hotstart(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime=0, const Bounds *const guessedBounds=0)
Definition: QProblemB.cpp:414
QProblemB::getWorkingSetBounds
virtual returnValue getWorkingSetBounds(real_t *workingSetB)
Definition: QProblemB.cpp:653
QProblemB::getNFV
int_t getNFV() const
Definition: QProblemB.ipp:91
PrintLevel
PrintLevel
Definition: Types.hpp:212
QProblemB::~QProblemB
virtual ~QProblemB()
Definition: QProblemB.cpp:183
QProblemB::ramp1
real_t ramp1
Definition: QProblemB.hpp:1001
QProblemB::isCPUtimeLimitExceeded
BooleanType isCPUtimeLimitExceeded(const real_t *const cputime, real_t starttime, int_t nWSR) const
Definition: QProblemB.cpp:1971
QProblemB::setG
returnValue setG(const real_t *const g_new)
Definition: QProblemB.ipp:293
QProblemB::setInfeasibilityFlag
returnValue setInfeasibilityFlag(returnValue returnvalue, BooleanType doThrowError=BT_FALSE)
Definition: QProblemB.cpp:1938
QProblemB::solveQP
returnValue solveQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime, int_t nWSRperformed=0, BooleanType isFirstCall=BT_TRUE)
Definition: QProblemB.cpp:2407
QProblemB::getNFR
int_t getNFR() const
Definition: QProblemB.ipp:73
SubjectTo::setType
returnValue setType(int_t i, SubjectToType value)
Definition: SubjectTo.ipp:90
int_t
int int_t
Definition: Types.hpp:180
QProblemB::setH
returnValue setH(SymmetricMatrix *H_new)
Definition: QProblemB.ipp:239
QProblemB::setupAuxiliaryWorkingSet
returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, BooleanType setupAfresh)
Definition: QProblemB.cpp:2763