qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
Classes | Macros | Typedefs | Enumerations | Variables
Types.hpp File Reference

Go to the source code of this file.

Classes

struct  TabularOutput
 Stores internal information for tabular (debugging) output. More...
 
struct  MatMatrixHeader
 Struct containing the variable header for mat file. More...
 

Macros

#define __ALWAYS_INITIALISE_WITH_ALL_EQUALITIES__
 
#define BEGIN_NAMESPACE_QPOASES   namespace qpOASES {
 
#define END_NAMESPACE_QPOASES   }
 
#define USING_NAMESPACE_QPOASES   using namespace qpOASES;
 
#define REFER_NAMESPACE_QPOASES   qpOASES::
 
#define RR(I, J)   R[(I)+nV*(J)]
 
#define QQ(I, J)   Q[(I)+nV*(J)]
 
#define TT(I, J)   T[(I)*sizeT+(J)]
 
#define SOLVER_NONE
 

Typedefs

typedef long la_int_t
 
typedef unsigned long la_uint_t
 
typedef int int_t
 
typedef unsigned int uint_t
 
typedef int fint_t
 
typedef int_t sparse_int_t
 

Enumerations

enum  BooleanType { BT_FALSE, BT_TRUE }
 
enum  PrintLevel {
  PL_DEBUG_ITER = -2, PL_TABULAR, PL_NONE, PL_LOW,
  PL_MEDIUM, PL_HIGH
}
 
enum  VisibilityStatus { VS_HIDDEN, VS_VISIBLE }
 
enum  QProblemStatus {
  QPS_NOTINITIALISED, QPS_PREPARINGAUXILIARYQP, QPS_AUXILIARYQPSOLVED, QPS_PERFORMINGHOMOTOPY,
  QPS_HOMOTOPYQPSOLVED, QPS_SOLVED
}
 
enum  HessianType {
  HST_ZERO, HST_IDENTITY, HST_POSDEF, HST_POSDEF_NULLSPACE,
  HST_SEMIDEF, HST_INDEF, HST_UNKNOWN
}
 
enum  SubjectToType {
  ST_UNBOUNDED, ST_BOUNDED, ST_EQUALITY, ST_DISABLED,
  ST_UNKNOWN
}
 
enum  SubjectToStatus {
  ST_LOWER = -1, ST_INACTIVE, ST_UPPER, ST_INFEASIBLE_LOWER,
  ST_INFEASIBLE_UPPER, ST_UNDEFINED
}
 
enum  SchurUpdateType {
  SUT_VarFixed, SUT_VarFreed, SUT_ConAdded, SUT_ConRemoved,
  SUT_UNDEFINED
}
 

Variables

BEGIN_NAMESPACE_QPOASES typedef double real_t
 

Detailed Description

Author
Hans Joachim Ferreau, Andreas Potschka, Christian Kirches
Version
3.2
Date
2007-2017

Declaration of all non-built-in types (except for classes).

Macro Definition Documentation

◆ __ALWAYS_INITIALISE_WITH_ALL_EQUALITIES__

#define __ALWAYS_INITIALISE_WITH_ALL_EQUALITIES__

Forces to always include all implicitly fixed bounds and all equality constraints into the initial working set when setting up an auxiliary QP.

◆ BEGIN_NAMESPACE_QPOASES

#define BEGIN_NAMESPACE_QPOASES   namespace qpOASES {

Macro for switching on/off the beginning of the qpOASES namespace definition.

◆ END_NAMESPACE_QPOASES

#define END_NAMESPACE_QPOASES   }

◆ QQ

#define QQ (   I,
 
)    Q[(I)+nV*(J)]

◆ REFER_NAMESPACE_QPOASES

#define REFER_NAMESPACE_QPOASES   qpOASES::

◆ RR

#define RR (   I,
 
)    R[(I)+nV*(J)]

◆ TT

#define TT (   I,
 
)    T[(I)*sizeT+(J)]

Macro for accessing the triangular matrix T of the QT factorisation.

Referenced by QProblem::addBound(), QProblem::addConstraint(), QProblem::backsolveT(), QProblem::printIteration(), QProblem::removeBound(), and QProblem::removeConstraint().

◆ USING_NAMESPACE_QPOASES

#define USING_NAMESPACE_QPOASES   using namespace qpOASES;

Macro for switching on/off the use of the qpOASES namespace.

Referenced by main().

Typedef Documentation

◆ fint_t

typedef int fint_t

Defines FORTRAN integer type. Might be platform dependent!

◆ int_t

typedef int int_t

Defines int_t for facilitating switching between int and long int.

◆ la_int_t

typedef long la_int_t

Defined integer type for calling BLAS/LAPACK. Should usually be "(unsigned) int", currently set to "(unsigned) long" for backwards compatibility. This will change in a future release.

◆ sparse_int_t

Integer type for sparse matrix row/column entries. Make this "int" for 32 bit entries, and "long" for 64-bit entries on x86_64 platform.

Most sparse codes still assume 32-bit entries here (HSL, BQPD, ...)

Enumeration Type Documentation

◆ BooleanType

Summarises all possible logical values.

Enumerator
BT_FALSE 

Logical value for "false".

BT_TRUE 

Logical value for "true".

◆ HessianType

Summarises all possible types of the QP's Hessian matrix.

Enumerator
HST_ZERO 

Hessian is zero matrix (i.e. LP formulation).

HST_IDENTITY 

Hessian is identity matrix.

HST_POSDEF 

Hessian is (strictly) positive definite.

HST_POSDEF_NULLSPACE 

Hessian is positive definite on null space of active bounds/constraints.

HST_SEMIDEF 

Hessian is positive semi-definite.

HST_INDEF 

Hessian is indefinite.

HST_UNKNOWN 

Hessian type is unknown.

◆ PrintLevel

enum PrintLevel

Summarises all possible print levels. Print levels are used to describe the desired amount of output during runtime of qpOASES.

Enumerator
PL_DEBUG_ITER 

Full tabular debugging output.

PL_TABULAR 

Normal tabular output.

PL_NONE 

No output.

PL_LOW 

Print error messages only.

PL_MEDIUM 

Print error and warning messages as well as concise info messages.

PL_HIGH 

Print all messages with full details.

◆ QProblemStatus

Summarises all possible states of the (S)QProblem(B) object during the solution process of a QP sequence.

Enumerator
QPS_NOTINITIALISED 

QProblem object is freshly instantiated or reset.

QPS_PREPARINGAUXILIARYQP 

An auxiliary problem is currently setup, either at the very beginning via an initial homotopy or after changing the QP matrices.

QPS_AUXILIARYQPSOLVED 

An auxilary problem was solved, either at the very beginning via an initial homotopy or after changing the QP matrices.

QPS_PERFORMINGHOMOTOPY 

A homotopy according to the main idea of the online active set strategy is performed.

QPS_HOMOTOPYQPSOLVED 

An intermediate QP along the homotopy path was solved.

QPS_SOLVED 

The solution of the actual QP was found.

◆ SchurUpdateType

Flag indicating which type of update generated column in Schur complement.

Enumerator
SUT_VarFixed 

Free variable gets fixed.

SUT_VarFreed 

Fixed variable gets freed.

SUT_ConAdded 

Constraint becomes active.

SUT_ConRemoved 

Constraint becomes inactive.

SUT_UNDEFINED 

Type of Schur update is undefined.

◆ SubjectToStatus

Summarises all possible states of bounds and constraints.

Enumerator
ST_LOWER 

Bound/constraint is at its lower bound.

ST_INACTIVE 

Bound/constraint is inactive.

ST_UPPER 

Bound/constraint is at its upper bound.

ST_INFEASIBLE_LOWER 

(to be documented)

ST_INFEASIBLE_UPPER 

(to be documented)

ST_UNDEFINED 

Status of bound/constraint undefined.

◆ SubjectToType

Summarises all possible types of bounds and constraints.

Enumerator
ST_UNBOUNDED 

Bound/constraint is unbounded.

ST_BOUNDED 

Bound/constraint is bounded but not fixed.

ST_EQUALITY 

Bound/constraint is fixed (implicit equality bound/constraint).

ST_DISABLED 

Bound/constraint is disabled (i.e. ignored when solving QP).

ST_UNKNOWN 

Type of bound/constraint unknown.

◆ VisibilityStatus

Defines visibility status of a message.

Enumerator
VS_HIDDEN 

Message not visible.

VS_VISIBLE 

Message visible.

Variable Documentation

◆ real_t

BEGIN_NAMESPACE_QPOASES typedef double real_t

Defines real_t for facilitating switching between double and float.

Referenced by QProblem::addBound(), QProblemB::addBound(), SQProblemSchur::addBound_checkLI(), QProblem::addBound_checkLI(), SQProblemSchur::addBound_checkLISchur(), SQProblemSchur::addBound_ensureLI(), QProblem::addBound_ensureLI(), QProblem::addConstraint(), SQProblemSchur::addConstraint_checkLI(), QProblem::addConstraint_checkLI(), SQProblemSchur::addConstraint_checkLISchur(), SQProblemSchur::addConstraint_ensureLI(), QProblem::addConstraint_ensureLI(), SQProblemSchur::addToSchurComplement(), QProblemB::backsolveR(), QProblem::backsolveT(), SymDenseMat::bilinear(), SQProblemSchur::calcDetSchur(), SolutionAnalysis::checkCurvatureOnStronglyActiveConstraints(), QProblemB::computeGivens(), SQProblemSchur::computeMTimes(), SparseSolver::copy(), SQProblemSchur::copy(), SQProblemSchur::correctInertia(), QProblemB::createDiagSparseMat(), DenseMatrix::DenseMatrix(), QProblemB::determineHessianType(), QProblem::determineStepDirection(), QProblemB::determineStepDirection(), SQProblemSchur::determineStepDirection2(), DenseMatrix::duplicate(), SparseMatrix::duplicate(), SparseMatrixRow::duplicate(), SymDenseMat::duplicateSym(), SymSparseMat::duplicateSym(), QProblem::ensureNonzeroCurvature(), DenseMatrix::full(), SparseMatrix::full(), SparseMatrixRow::full(), Flipper::get(), getCPUtime(), SolutionAnalysis::getKktViolation(), getKktViolation(), getNorm(), QProblemB::getObjVal(), QProblemB::getRelativeHomotopyLength(), QProblem::getRelativeHomotopyLength(), SparseMatrix::getRowNorm(), DenseMatrix::getSparseSubmatrix(), SolutionAnalysis::getVarianceCovariance(), SQProblem::hotstart(), QProblemB::hotstart(), QProblem::hotstart(), QProblemB::isCPUtimeLimitExceeded(), main(), normaliseConstraints(), ConstraintProduct::operator=(), QProblemB::performRamping(), QProblem::performRamping(), QProblem::performStep(), QProblemB::performStep(), SparseMatrix::print(), SparseMatrixRow::print(), QProblem::printIteration(), QProblemB::printIteration(), QProblem::QProblem(), QProblemB::QProblemB(), readFromFile(), readOqpData(), SQProblemSchur::removeBound(), QProblem::removeBound(), QProblemB::removeBound(), SQProblemSchur::removeConstraint(), QProblem::removeConstraint(), runOqpBenchmark(), Flipper::set(), QProblem::setA(), QProblemB::setH(), QProblem::setupAuxiliaryWorkingSet(), SQProblem::setupNewAuxiliaryQP(), QProblemB::setupQPdataFromFile(), QProblem::setupQPdataFromFile(), QProblem::solveCurrentEQP(), QProblem::solveInitialQP(), QProblemB::solveInitialQP(), solveOqpBenchmark(), QProblem::solveQP(), QProblemB::solveQP(), QProblem::solveRegularisedQP(), QProblemB::solveRegularisedQP(), SparseMatrix::SparseMatrix(), SparseMatrixRow::SparseMatrixRow(), SQProblemSchur::SQProblemSchur(), SparseMatrix::times(), SparseMatrix::transTimes(), QProblemB::updateFarBounds(), QProblem::updateFarBounds(), SQProblemSchur::updateSchurQR(), writeIntoMatFile(), QProblem::writeQpDataIntoMatFile(), Matrix::~Matrix(), SymDenseMat::~SymDenseMat(), SymmetricMatrix::~SymmetricMatrix(), and SymSparseMat::~SymSparseMat().