qpOASES
3.1.1
|
#include <stdio.h>
#include <string.h>
#include <qpOASES/Constants.hpp>
#include <qpOASES/MessageHandling.ipp>
Go to the source code of this file.
#define __FILE__ 0 |
Ensures that __FILE__ macro is defined.
Referenced by QProblem::addBound_ensureLI(), QProblem::addConstraint_ensureLI(), QProblem::changeActiveSet(), QProblemB::changeActiveSet(), QProblem::performStep(), QProblemB::performStep(), readFromFile(), QProblem::solveQP(), QProblemB::solveQP(), MessageHandling::throwError(), MessageHandling::throwInfo(), MessageHandling::throwMessage(), MessageHandling::throwWarning(), and writeIntoFile().
#define __FUNC__ ("(no function name provided)") |
Define __FUNC__ macro providing current function for debugging.
Referenced by QProblem::addBound_ensureLI(), QProblem::addConstraint_ensureLI(), QProblem::changeActiveSet(), QProblemB::changeActiveSet(), QProblem::performStep(), QProblemB::performStep(), readFromFile(), QProblem::solveQP(), QProblemB::solveQP(), MessageHandling::throwError(), MessageHandling::throwInfo(), MessageHandling::throwMessage(), MessageHandling::throwWarning(), and writeIntoFile().
#define __LINE__ 0 |
Ensures that __LINE__ macro is defined.
Referenced by QProblem::addBound_ensureLI(), QProblem::addConstraint_ensureLI(), QProblem::changeActiveSet(), QProblemB::changeActiveSet(), QProblem::performStep(), QProblemB::performStep(), readFromFile(), QProblem::solveQP(), QProblemB::solveQP(), MessageHandling::throwError(), MessageHandling::throwInfo(), MessageHandling::throwMessage(), MessageHandling::throwWarning(), and writeIntoFile().
#define THROWERROR | ( | retval | ) | ( getGlobalMessageHandler( )->throwError((retval),0,__FUNC__,__FILE__,__LINE__,VS_VISIBLE) ) |
Short version of throwError with default values, only returnValue is needed
Referenced by QProblem::addBound(), QProblemB::addBound(), QProblem::addBound_ensureLI(), QProblem::addConstraint(), QProblem::addConstraint_ensureLI(), SubjectTo::addIndex(), Indexlist::addNumber(), SparseMatrix::addToDiag(), SparseMatrixRow::addToDiag(), QProblemB::backsolveR(), QProblem::backsolveT(), SymSparseMat::bilinear(), QProblem::changeActiveSet(), QProblemB::changeActiveSet(), QProblemB::computeCholesky(), QProblem::computeProjectedCholesky(), QProblemB::determineHessianType(), QProblem::determineStepDirection(), QProblemB::determineStepDirection(), SparseMatrix::diag(), SparseMatrixRow::diag(), Constraints::flipFixed(), Bounds::flipFixed(), QProblemB::getBounds(), QProblem::getConstraints(), SolutionAnalysis::getKktViolation(), getNorm(), Indexlist::getNumberArray(), SparseMatrix::getRowNorm(), SolutionAnalysis::getVarianceCovariance(), QProblem::getWorkingSet(), QProblemB::getWorkingSetBounds(), QProblemB::getWorkingSetConstraints(), QProblem::getWorkingSetConstraints(), SQProblem::hotstart(), QProblemB::hotstart(), QProblem::hotstart(), Constraints::init(), Bounds::init(), SubjectTo::init(), Indexlist::init(), QProblemB::init(), QProblem::init(), QProblemB::loadQPvectorsFromFile(), QProblem::loadQPvectorsFromFile(), Constraints::moveActiveToInactive(), Bounds::moveFixedToFree(), Bounds::moveFreeToFixed(), Constraints::moveInactiveToActive(), myPrintf(), normaliseConstraints(), QProblemB::obtainAuxiliaryWorkingSet(), QProblem::obtainAuxiliaryWorkingSet(), QProblem::performStep(), QProblem::printIteration(), QProblemB::printIteration(), QProblem::QProblem(), QProblemB::QProblemB(), readOQPdata(), readOQPdimensions(), QProblemB::regulariseHessian(), QProblem::removeBound(), QProblemB::removeBound(), QProblem::removeConstraint(), SubjectTo::removeIndex(), QProblem::reset(), QProblemB::reset(), Constraints::rotate(), Bounds::rotate(), runOQPbenchmark(), QProblem::setA(), QProblemB::setG(), QProblemB::setInfeasibilityFlag(), QProblemB::setLB(), QProblem::setLBA(), SubjectTo::setStatus(), SubjectTo::setType(), QProblemB::setUB(), QProblem::setUBA(), Constraints::setupAll(), Bounds::setupAll(), QProblem::setupAuxiliaryQP(), QProblemB::setupAuxiliaryQP(), QProblem::setupAuxiliaryQPbounds(), QProblemB::setupAuxiliaryQPbounds(), QProblem::setupAuxiliaryWorkingSet(), QProblemB::setupAuxiliaryWorkingSet(), Bounds::setupBound(), Constraints::setupConstraint(), SQProblem::setupNewAuxiliaryQP(), QProblemB::setupQPdata(), QProblem::setupQPdata(), QProblemB::setupQPdataFromFile(), QProblem::setupQPdataFromFile(), QProblem::setupSubjectToType(), Constraints::shift(), Bounds::shift(), QProblem::solveCurrentEQP(), QProblem::solveInitialQP(), QProblemB::solveInitialQP(), solveOQPbenchmark(), QProblem::solveQP(), QProblemB::solveQP(), Bounds::swapFree(), SubjectTo::swapIndex(), and Indexlist::swapNumbers().
#define THROWINFO | ( | retval | ) | ( getGlobalMessageHandler( )->throwInfo((retval),0,__FUNC__,__FILE__,__LINE__,VS_VISIBLE) ) |
Short version of throwInfo with default values, only returnValue is needed
Referenced by QProblem::addBound_checkLI(), QProblem::addConstraint_checkLI(), QProblemB::determineHessianType(), getSimpleStatus(), QProblemB::regulariseHessian(), QProblemB::setPrintLevel(), QProblem::solveInitialQP(), QProblemB::solveInitialQP(), QProblem::solveQP(), and QProblemB::solveQP().
#define THROWWARNING | ( | retval | ) | ( getGlobalMessageHandler( )->throwWarning((retval),0,__FUNC__,__FILE__,__LINE__,VS_VISIBLE) ) |
Short version of throwWarning with default values, only returnValue is needed
Referenced by Options::ensureConsistency(), QProblemB::init(), QProblem::init(), QProblem::solveInitialQP(), QProblemB::solveInitialQP(), QProblem::solveRegularisedQP(), QProblemB::solveRegularisedQP(), and SubjectTo::swapIndex().
enum returnValue |
The enumeration returnValueType defines all symbols for global return values. Important: All return values are assumed to be nonnegative!
TERMINAL_LIST_ELEMENT |
Terminal list element, internal usage only! |
SUCCESSFUL_RETURN |
Successful return. |
RET_DIV_BY_ZERO |
Division by zero. |
RET_INDEX_OUT_OF_BOUNDS |
Index out of bounds. |
RET_INVALID_ARGUMENTS |
At least one of the arguments is invalid. |
RET_ERROR_UNDEFINED |
Error number undefined. |
RET_WARNING_UNDEFINED |
Warning number undefined. |
RET_INFO_UNDEFINED |
Info number undefined. |
RET_EWI_UNDEFINED |
Error/warning/info number undefined. |
RET_AVAILABLE_WITH_LINUX_ONLY |
This function is available under Linux only. |
RET_UNKNOWN_BUG |
The error occurred is not yet known. |
RET_PRINTLEVEL_CHANGED |
Print level changed. (10) |
RET_NOT_YET_IMPLEMENTED |
Requested function is not yet implemented in this version of qpOASES. |
RET_INDEXLIST_MUST_BE_REORDERD |
Index list has to be reordered. |
RET_INDEXLIST_EXCEEDS_MAX_LENGTH |
Index list exceeds its maximal physical length. |
RET_INDEXLIST_CORRUPTED |
Index list corrupted. |
RET_INDEXLIST_OUTOFBOUNDS |
Physical index is out of bounds. |
RET_INDEXLIST_ADD_FAILED |
Adding indices from another index set failed. |
RET_INDEXLIST_INTERSECT_FAILED |
Intersection with another index set failed. |
RET_INDEX_ALREADY_OF_DESIRED_STATUS |
Index is already of desired status. (18) |
RET_ADDINDEX_FAILED |
Adding index to index set failed. |
RET_REMOVEINDEX_FAILED |
Removing index from index set failed. (20) |
RET_SWAPINDEX_FAILED |
Cannot swap between different indexsets. |
RET_NOTHING_TO_DO |
Nothing to do. |
RET_SETUP_BOUND_FAILED |
Setting up bound index failed. |
RET_SETUP_CONSTRAINT_FAILED |
Setting up constraint index failed. |
RET_MOVING_BOUND_FAILED |
Moving bound between index sets failed. |
RET_MOVING_CONSTRAINT_FAILED |
Moving constraint between index sets failed. |
RET_SHIFTING_FAILED |
Shifting of bounds/constraints failed. |
RET_ROTATING_FAILED |
Rotating of bounds/constraints failed. |
RET_QPOBJECT_NOT_SETUP |
The QP object has not been setup correctly, use another constructor. |
RET_QP_ALREADY_INITIALISED |
QProblem has already been initialised. (30) |
RET_NO_INIT_WITH_STANDARD_SOLVER |
Initialisation via extern QP solver is not yet implemented. |
RET_RESET_FAILED |
Reset failed. |
RET_INIT_FAILED |
Initialisation failed. |
RET_INIT_FAILED_TQ |
Initialisation failed due to TQ factorisation. |
RET_INIT_FAILED_CHOLESKY |
Initialisation failed due to Cholesky decomposition. |
RET_INIT_FAILED_HOTSTART |
Initialisation failed! QP could not be solved! |
RET_INIT_FAILED_INFEASIBILITY |
Initial QP could not be solved due to infeasibility! |
RET_INIT_FAILED_UNBOUNDEDNESS |
Initial QP could not be solved due to unboundedness! |
RET_INIT_FAILED_REGULARISATION |
Initialisation failed as Hessian matrix could not be regularised. |
RET_INIT_SUCCESSFUL |
Initialisation done. (40) |
RET_OBTAINING_WORKINGSET_FAILED |
Failed to obtain working set for auxiliary QP. |
RET_SETUP_WORKINGSET_FAILED |
Failed to setup working set for auxiliary QP. |
RET_SETUP_AUXILIARYQP_FAILED |
Failed to setup auxiliary QP for initialised homotopy. |
RET_NO_CHOLESKY_WITH_INITIAL_GUESS |
Externally computed Cholesky factor cannot be combined with an initial guess. |
RET_NO_EXTERN_SOLVER |
No extern QP solver available. |
RET_QP_UNBOUNDED |
QP is unbounded. |
RET_QP_INFEASIBLE |
QP is infeasible. |
RET_QP_NOT_SOLVED |
Problems occurred while solving QP with standard solver. |
RET_QP_SOLVED |
QP successfully solved. |
RET_UNABLE_TO_SOLVE_QP |
Problems occurred while solving QP. (50) |
RET_INITIALISATION_STARTED |
Starting problem initialisation... |
RET_HOTSTART_FAILED |
Unable to perform homotopy due to internal error. |
RET_HOTSTART_FAILED_TO_INIT |
Unable to initialise problem. |
RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED |
Unable to perform homotopy as previous QP is not solved. |
RET_ITERATION_STARTED |
Iteration... |
RET_SHIFT_DETERMINATION_FAILED |
Determination of shift of the QP data failed. |
RET_STEPDIRECTION_DETERMINATION_FAILED |
Determination of step direction failed. |
RET_STEPLENGTH_DETERMINATION_FAILED |
Determination of step direction failed. |
RET_OPTIMAL_SOLUTION_FOUND |
Optimal solution of neighbouring QP found. |
RET_HOMOTOPY_STEP_FAILED |
Unable to perform homotopy step. (60) |
RET_HOTSTART_STOPPED_INFEASIBILITY |
Premature homotopy termination because QP is infeasible. |
RET_HOTSTART_STOPPED_UNBOUNDEDNESS |
Premature homotopy termination because QP is unbounded. |
RET_WORKINGSET_UPDATE_FAILED |
Unable to update working sets according to initial guesses. |
RET_MAX_NWSR_REACHED |
Maximum number of working set recalculations performed. |
RET_CONSTRAINTS_NOT_SPECIFIED |
Problem does comprise constraints! You also have to specify new constraints' bounds. |
RET_INVALID_FACTORISATION_FLAG |
Invalid factorisation flag. |
RET_UNABLE_TO_SAVE_QPDATA |
Unable to save QP data. |
RET_STEPDIRECTION_FAILED_TQ |
Abnormal termination due to TQ factorisation. |
RET_STEPDIRECTION_FAILED_CHOLESKY |
Abnormal termination due to Cholesky factorisation. |
RET_CYCLING_DETECTED |
Cycling detected. (70) |
RET_CYCLING_NOT_RESOLVED |
Cycling cannot be resolved, QP probably infeasible. |
RET_CYCLING_RESOLVED |
Cycling probably resolved. |
RET_STEPSIZE |
For displaying performed stepsize. |
RET_STEPSIZE_NONPOSITIVE |
For displaying non-positive stepsize. |
RET_SETUPSUBJECTTOTYPE_FAILED |
Setup of SubjectToTypes failed. |
RET_ADDCONSTRAINT_FAILED |
Addition of constraint to working set failed. |
RET_ADDCONSTRAINT_FAILED_INFEASIBILITY |
Addition of constraint to working set failed (due to QP infeasibility). |
RET_ADDBOUND_FAILED |
Addition of bound to working set failed. |
RET_ADDBOUND_FAILED_INFEASIBILITY |
Addition of bound to working set failed (due to QP infeasibility). |
RET_REMOVECONSTRAINT_FAILED |
Removal of constraint from working set failed. (80) |
RET_REMOVEBOUND_FAILED |
Removal of bound from working set failed. |
RET_REMOVE_FROM_ACTIVESET |
Removing from active set... |
RET_ADD_TO_ACTIVESET |
Adding to active set... |
RET_REMOVE_FROM_ACTIVESET_FAILED |
Removing from active set failed. |
RET_ADD_TO_ACTIVESET_FAILED |
Adding to active set failed. |
RET_CONSTRAINT_ALREADY_ACTIVE |
Constraint is already active. |
RET_ALL_CONSTRAINTS_ACTIVE |
All constraints are active, no further constraint can be added. |
RET_LINEARLY_DEPENDENT |
New bound/constraint is linearly dependent. |
RET_LINEARLY_INDEPENDENT |
New bound/constraint is linearly independent. |
RET_LI_RESOLVED |
Linear independence of active constraint matrix successfully resolved. (90) |
RET_ENSURELI_FAILED |
Failed to ensure linear independence of active constraint matrix. |
RET_ENSURELI_FAILED_TQ |
Abnormal termination due to TQ factorisation. |
RET_ENSURELI_FAILED_NOINDEX |
QP is infeasible. |
RET_ENSURELI_FAILED_CYCLING |
QP is infeasible. |
RET_BOUND_ALREADY_ACTIVE |
Bound is already active. |
RET_ALL_BOUNDS_ACTIVE |
All bounds are active, no further bound can be added. |
RET_CONSTRAINT_NOT_ACTIVE |
Constraint is not active. |
RET_BOUND_NOT_ACTIVE |
Bound is not active. |
RET_HESSIAN_NOT_SPD |
Projected Hessian matrix not positive definite. |
RET_HESSIAN_INDEFINITE |
Hessian matrix is indefinite. (100) |
RET_MATRIX_SHIFT_FAILED |
Unable to update matrices or to transform vectors. |
RET_MATRIX_FACTORISATION_FAILED |
Unable to calculate new matrix factorisations. |
RET_PRINT_ITERATION_FAILED |
Unable to print information on current iteration. |
RET_NO_GLOBAL_MESSAGE_OUTPUTFILE |
No global message output file initialised. |
RET_DISABLECONSTRAINTS_FAILED |
Unable to disbable constraints. |
RET_ENABLECONSTRAINTS_FAILED |
Unable to enbable constraints. |
RET_ALREADY_ENABLED |
Bound or constraint is already enabled. |
RET_ALREADY_DISABLED |
Bound or constraint is already disabled. |
RET_NO_HESSIAN_SPECIFIED |
No Hessian matrix has been specified. |
RET_USING_REGULARISATION |
Using regularisation as Hessian matrix is not positive definite. (110) |
RET_EPS_MUST_BE_POSITVE |
Eps for regularisation must be sufficiently positive. |
RET_REGSTEPS_MUST_BE_POSITVE |
Maximum number of regularisation steps must be non-negative. |
RET_HESSIAN_ALREADY_REGULARISED |
Hessian has been already regularised. |
RET_CANNOT_REGULARISE_IDENTITY |
Identity Hessian matrix cannot be regularised. |
RET_CANNOT_REGULARISE_SPARSE |
Sparse matrix cannot be regularised as diagonal entry is missing. |
RET_NO_REGSTEP_NWSR |
No additional regularisation step could be performed due to limits. |
RET_FEWER_REGSTEPS_NWSR |
Fewer additional regularisation steps have been performed due to limits. |
RET_CHOLESKY_OF_ZERO_HESSIAN |
Cholesky decomposition of (unregularised) zero Hessian matrix. |
RET_ZERO_HESSIAN_ASSUMED |
Zero Hessian matrix assumed as null pointer passed without specifying hessianType. |
RET_CONSTRAINTS_ARE_NOT_SCALED |
(no longer in use) (120) |
RET_INITIAL_BOUNDS_STATUS_NYI |
(no longer in use) |
RET_ERROR_IN_CONSTRAINTPRODUCT |
Error in user-defined constraint product function. |
RET_FIX_BOUNDS_FOR_LP |
All initial bounds must be fixed when solving an (unregularised) LP. |
RET_USE_REGULARISATION_FOR_LP |
Set options.enableRegularisation=BT_TRUE for solving LPs. |
RET_UPDATEMATRICES_FAILED |
Unable to update QP matrices. |
RET_UPDATEMATRICES_FAILED_AS_QP_NOT_SOLVED |
Unable to update matrices as previous QP is not solved. |
RET_UNABLE_TO_OPEN_FILE |
Unable to open file. |
RET_UNABLE_TO_WRITE_FILE |
Unable to write into file. |
RET_UNABLE_TO_READ_FILE |
Unable to read from file. |
RET_FILEDATA_INCONSISTENT |
File contains inconsistent data. (130) |
RET_OPTIONS_ADJUSTED |
Options needed to be adjusted for consistency reasons. |
RET_UNABLE_TO_ANALYSE_QPROBLEM |
Unable to analyse (S)QProblem(B) object. |
RET_NWSR_SET_TO_ONE |
Maximum number of working set changes was set to 1. |
RET_UNABLE_TO_READ_BENCHMARK |
Unable to read benchmark data. |
RET_BENCHMARK_ABORTED |
Benchmark aborted. |
RET_INITIAL_QP_SOLVED |
Initial QP solved. |
RET_QP_SOLUTION_STARTED |
Solving QP... |
RET_BENCHMARK_SUCCESSFUL |
Benchmark terminated successfully. |
RET_NO_DIAGONAL_AVAILABLE |
Sparse matrix does not have entries on full diagonal. |
RET_DIAGONAL_NOT_INITIALISED |
Diagonal data of sparse matrix has not been initialised. (140) |
RET_ENSURELI_DROPPED |
Linear independence resolved by dropping blocking constraint. |
RET_SIMPLE_STATUS_P1 |
QP problem could not be solved within given number of iterations. |
RET_SIMPLE_STATUS_P0 |
QP problem solved. |
RET_SIMPLE_STATUS_M1 |
QP problem could not be solved due to an internal error. |
RET_SIMPLE_STATUS_M2 |
QP problem is infeasible (and thus could not be solved). |
RET_SIMPLE_STATUS_M3 |
QP problem is unbounded (and thus could not be solved). (146) |
Returns a pointer to global message handler.
Global message handler for all qpOASES modules.
References stdFile, and VS_VISIBLE.
Referenced by QProblem::addBound_ensureLI(), QProblem::addConstraint_ensureLI(), QProblem::changeActiveSet(), QProblemB::changeActiveSet(), getSimpleStatus(), myPrintf(), QProblem::performStep(), QProblemB::performStep(), QProblemB::QProblemB(), readFromFile(), QProblemB::setPrintLevel(), QProblem::solveQP(), QProblemB::solveQP(), writeIntoFile(), and QProblemB::~QProblemB().
Default file to display messages.
Referenced by getGlobalMessageHandler(), QProblem::getRelativeHomotopyLength(), main(), MessageHandling::MessageHandling(), and MessageHandling::reset().