qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
Functions
Utils.cpp File Reference
#include <math.h>
#include <qpOASES/Utils.hpp>

Functions

BEGIN_NAMESPACE_QPOASES returnValue print (const real_t *const v, int_t n, const char *name)
 
returnValue print (const real_t *const v, int_t n, const int_t *const V_idx, const char *name)
 
returnValue print (const real_t *const M, int_t nrow, int_t ncol, const char *name)
 
returnValue print (const real_t *const M, int_t nrow, int_t ncol, const int_t *const ROW_idx, const int_t *const COL_idx, const char *name)
 
returnValue print (const int_t *const index, int_t n, const char *name)
 
returnValue myPrintf (const char *s)
 
returnValue printCopyrightNotice ()
 
returnValue readFromFile (real_t *data, int_t nrow, int_t ncol, const char *datafilename)
 
returnValue readFromFile (real_t *data, int_t n, const char *datafilename)
 
returnValue readFromFile (int_t *data, int_t n, const char *datafilename)
 
returnValue writeIntoFile (const real_t *const data, int_t nrow, int_t ncol, const char *datafilename, BooleanType append)
 
returnValue writeIntoFile (const real_t *const data, int_t n, const char *datafilename, BooleanType append)
 
returnValue writeIntoFile (const int_t *const integer, int_t n, const char *datafilename, BooleanType append)
 
returnValue writeIntoMatFile (FILE *const matFile, const real_t *const data, int_t nRows, int_t nCols, const char *name)
 
returnValue writeIntoMatFile (FILE *const matFile, const int_t *const data, int_t nRows, int_t nCols, const char *name)
 
real_t getCPUtime ()
 
real_t getNorm (const real_t *const v, int_t n, int_t type)
 
returnValue getKktViolation (int_t nV, int_t nC, 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, const real_t *const x, const real_t *const y, real_t &stat, real_t &feas, real_t &cmpl, const real_t *const workingSetB, const real_t *const workingSetC, BooleanType hasIdentityHessian)
 
returnValue getKktViolation (int_t nV, const real_t *const H, const real_t *const g, const real_t *const lb, const real_t *const ub, const real_t *const x, const real_t *const y, real_t &stat, real_t &feas, real_t &cmpl, const real_t *const workingSetB, BooleanType hasIdentityHessian)
 
returnValue convertBooleanTypeToString (BooleanType value, char *const string)
 
returnValue convertSubjectToStatusToString (SubjectToStatus value, char *const string)
 
returnValue convertPrintLevelToString (PrintLevel value, char *const string)
 
int_t getSimpleStatus (returnValue returnvalue, BooleanType doPrintStatus)
 
returnValue normaliseConstraints (int_t nV, int_t nC, real_t *A, real_t *lbA, real_t *ubA, int_t type)
 

Detailed Description

Author
Hans Joachim Ferreau, Andreas Potschka, Christian Kirches (thanks to Eckhard Arnold)
Version
3.2
Date
2007-2017

Implementation of some utility functions for working with qpOASES.

Function Documentation

◆ convertBooleanTypeToString()

returnValue convertBooleanTypeToString ( BooleanType  value,
char *const  string 
)

Writes a value of BooleanType into a string.

Returns
SUCCESSFUL_RETURN

References BT_FALSE, and SUCCESSFUL_RETURN.

Referenced by Options::print().

◆ convertPrintLevelToString()

returnValue convertPrintLevelToString ( PrintLevel  value,
char *const  string 
)

Writes a value of PrintLevel into a string.

Returns
SUCCESSFUL_RETURN

References PL_DEBUG_ITER, PL_HIGH, PL_LOW, PL_MEDIUM, PL_NONE, PL_TABULAR, and SUCCESSFUL_RETURN.

Referenced by Options::print().

◆ convertSubjectToStatusToString()

returnValue convertSubjectToStatusToString ( SubjectToStatus  value,
char *const  string 
)

Writes a value of SubjectToStatus into a string.

Returns
SUCCESSFUL_RETURN

References ST_INACTIVE, ST_INFEASIBLE_LOWER, ST_INFEASIBLE_UPPER, ST_LOWER, ST_UNDEFINED, ST_UPPER, and SUCCESSFUL_RETURN.

Referenced by Options::print().

◆ getCPUtime()

real_t getCPUtime ( )

◆ getKktViolation() [1/2]

returnValue getKktViolation ( int_t  nV,
const real_t *const  H,
const real_t *const  g,
const real_t *const  lb,
const real_t *const  ub,
const real_t *const  x,
const real_t *const  y,
real_t stat,
real_t feas,
real_t cmpl,
const real_t *const  workingSetB = 0,
BooleanType  hasIdentityHessian = BT_FALSE 
)

Computes the maximum violation of the KKT optimality conditions of given iterate for given QP data.

References getKktViolation().

◆ getKktViolation() [2/2]

returnValue getKktViolation ( int_t  nV,
int_t  nC,
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,
const real_t *const  x,
const real_t *const  y,
real_t stat,
real_t feas,
real_t cmpl,
const real_t *const  workingSetB = 0,
const real_t *const  workingSetC = 0,
BooleanType  hasIdentityHessian = BT_FALSE 
)

Computes the maximum violation of the KKT optimality conditions of given iterate for given QP data.

References BT_TRUE, EPS, getAbs(), isEqual(), real_t, and SUCCESSFUL_RETURN.

Referenced by getKktViolation(), and solveOqpBenchmark().

◆ getNorm()

real_t getNorm ( const real_t *const  v,
int_t  n,
int_t  type = 2 
)

Returns the N-norm of a vector.

Returns
>= 0.0: successful

References getAbs(), getSqrt(), INFTY, real_t, RET_INVALID_ARGUMENTS, and THROWERROR.

Referenced by normaliseConstraints(), and QProblemB::regulariseHessian().

◆ getSimpleStatus()

int_t getSimpleStatus ( returnValue  returnvalue,
BooleanType  doPrintStatus = BT_FALSE 
)

Converts a returnValue from an (S)QProblem(B) object into a more simple status flag.

Returns
0: QP problem solved 1: QP could not be solved within given number of iterations -1: QP could not be solved due to an internal error -2: QP is infeasible (and thus could not be solved) -3: QP is unbounded (and thus could not be solved)

References BT_TRUE, getGlobalMessageHandler(), MessageHandling::getInfoVisibilityStatus(), RET_HOTSTART_STOPPED_INFEASIBILITY, RET_HOTSTART_STOPPED_UNBOUNDEDNESS, RET_INIT_FAILED_INFEASIBILITY, RET_INIT_FAILED_UNBOUNDEDNESS, RET_MAX_NWSR_REACHED, RET_SIMPLE_STATUS_P0, MessageHandling::setErrorCount(), MessageHandling::setInfoVisibilityStatus(), SUCCESSFUL_RETURN, THROWINFO, and VS_VISIBLE.

◆ myPrintf()

returnValue myPrintf ( const char *  s)

◆ normaliseConstraints()

returnValue normaliseConstraints ( int_t  nV,
int_t  nC,
real_t A,
real_t lbA,
real_t ubA,
int_t  type = 1 
)

Normalises QP constraints.

Returns
SUCCESSFUL_RETURN
RET_INVALID_ARGUMENTS

References EPS, getNorm(), getSqrt(), INFTY, real_t, RET_INVALID_ARGUMENTS, SUCCESSFUL_RETURN, and THROWERROR.

◆ print() [1/5]

returnValue print ( const int_t *const  index,
int_t  n,
const char *  name = 0 
)

Prints a (possibly named) index array.

Returns
SUCCESSFUL_RETURN

References MAX_STRING_LENGTH, myPrintf(), and SUCCESSFUL_RETURN.

◆ print() [2/5]

returnValue print ( const real_t *const  M,
int_t  nrow,
int_t  ncol,
const char *  name = 0 
)

Prints a (possibly named) matrix.

Returns
SUCCESSFUL_RETURN

References MAX_STRING_LENGTH, myPrintf(), print(), and SUCCESSFUL_RETURN.

◆ print() [3/5]

returnValue print ( const real_t *const  M,
int_t  nrow,
int_t  ncol,
const int_t *const  ROW_idx,
const int_t *const  COL_idx,
const char *  name = 0 
)

Prints a (possibly named) permuted matrix.

Returns
SUCCESSFUL_RETURN

References MAX_STRING_LENGTH, myPrintf(), print(), and SUCCESSFUL_RETURN.

◆ print() [4/5]

BEGIN_NAMESPACE_QPOASES returnValue print ( const real_t *const  v,
int_t  n,
const char *  name = 0 
)

Prints a (possibly named) vector.

Returns
SUCCESSFUL_RETURN

References MAX_STRING_LENGTH, myPrintf(), and SUCCESSFUL_RETURN.

Referenced by print().

◆ print() [5/5]

returnValue print ( const real_t *const  v,
int_t  n,
const int_t *const  V_idx,
const char *  name = 0 
)

Prints a (possibly named) permuted vector.

Returns
SUCCESSFUL_RETURN

References MAX_STRING_LENGTH, myPrintf(), and SUCCESSFUL_RETURN.

◆ printCopyrightNotice()

returnValue printCopyrightNotice ( )

Prints qpOASES copyright notice.

Returns
SUCCESSFUL_RETURN

References myPrintf(), and SUCCESSFUL_RETURN.

Referenced by QProblemB::QProblemB().

◆ readFromFile() [1/3]

returnValue readFromFile ( int_t data,
int_t  n,
const char *  datafilename 
)

Reads an integer (column) vector from file.

Returns
SUCCESSFUL_RETURN
RET_UNABLE_TO_OPEN_FILE
RET_UNABLE_TO_READ_FILE

References __FILE__, __FUNC__, __LINE__, getGlobalMessageHandler(), MAX_STRING_LENGTH, RET_NOT_YET_IMPLEMENTED, RET_UNABLE_TO_OPEN_FILE, RET_UNABLE_TO_READ_FILE, SUCCESSFUL_RETURN, MessageHandling::throwError(), and VS_VISIBLE.

◆ readFromFile() [2/3]

returnValue readFromFile ( real_t data,
int_t  n,
const char *  datafilename 
)

Reads a real_t vector from file.

Returns
SUCCESSFUL_RETURN
RET_UNABLE_TO_OPEN_FILE
RET_UNABLE_TO_READ_FILE

References readFromFile().

◆ readFromFile() [3/3]

returnValue readFromFile ( real_t data,
int_t  nrow,
int_t  ncol,
const char *  datafilename 
)

◆ writeIntoFile() [1/3]

returnValue writeIntoFile ( const int_t *const  integer,
int_t  n,
const char *  datafilename,
BooleanType  append = BT_FALSE 
)

Writes an integer (column) vector into a file.

Returns
SUCCESSFUL_RETURN
RET_UNABLE_TO_OPEN_FILE

References __FILE__, __FUNC__, __LINE__, BT_TRUE, getGlobalMessageHandler(), MAX_STRING_LENGTH, RET_NOT_YET_IMPLEMENTED, RET_UNABLE_TO_OPEN_FILE, SUCCESSFUL_RETURN, MessageHandling::throwError(), and VS_VISIBLE.

◆ writeIntoFile() [2/3]

returnValue writeIntoFile ( const real_t *const  data,
int_t  n,
const char *  datafilename,
BooleanType  append = BT_FALSE 
)

Writes a real_t vector into a file.

Returns
SUCCESSFUL_RETURN
RET_UNABLE_TO_OPEN_FILE

References writeIntoFile().

◆ writeIntoFile() [3/3]

returnValue writeIntoFile ( const real_t *const  data,
int_t  nrow,
int_t  ncol,
const char *  datafilename,
BooleanType  append = BT_FALSE 
)

Writes a real_t matrix into a file.

Returns
SUCCESSFUL_RETURN
RET_UNABLE_TO_OPEN_FILE

References __FILE__, __FUNC__, __LINE__, BT_TRUE, getGlobalMessageHandler(), MAX_STRING_LENGTH, RET_NOT_YET_IMPLEMENTED, RET_UNABLE_TO_OPEN_FILE, SUCCESSFUL_RETURN, MessageHandling::throwError(), and VS_VISIBLE.

Referenced by writeIntoFile().

◆ writeIntoMatFile() [1/2]

returnValue writeIntoMatFile ( FILE *const  matFile,
const int_t *const  data,
int_t  nRows,
int_t  nCols,
const char *  name 
)

Writes in integer matrix/vector into a Matlab binary file.

Returns
SUCCESSFUL_RETURN
RET_INVALID_ARGUMENTS RET_UNABLE_TO_WRITE_FILE

References real_t, and writeIntoMatFile().

◆ writeIntoMatFile() [2/2]

returnValue writeIntoMatFile ( FILE *const  matFile,
const real_t *const  data,
int_t  nRows,
int_t  nCols,
const char *  name 
)