| 
    qpOASES
    3.2.1
    
   An Implementation of the Online Active Set Strategy 
   | 
  
  
  
 
Stores and manages index lists. More...
#include <Indexlist.hpp>
Public Member Functions | |
| Indexlist () | |
| Indexlist (int_t n) | |
| Indexlist (const Indexlist &rhs) | |
| ~Indexlist () | |
| Indexlist & | operator= (const Indexlist &rhs) | 
| returnValue | init (int_t n=0) | 
| returnValue | getNumberArray (int_t **const numberarray) const | 
| returnValue | getISortArray (int_t **const iSortArray) const | 
| int_t | getIndex (int_t givennumber) const | 
| int_t | getNumber (int_t physicalindex) const | 
| int_t | getLength () const | 
| int_t | getLastNumber () const | 
| returnValue | addNumber (int_t addnumber) | 
| returnValue | removeNumber (int_t removenumber) | 
| returnValue | swapNumbers (int_t number1, int_t number2) | 
| BooleanType | isMember (int_t _number) const | 
Protected Member Functions | |
| returnValue | clear () | 
| returnValue | copy (const Indexlist &rhs) | 
| int_t | findInsert (int_t i) const | 
Protected Attributes | |
| int_t * | number | 
| int_t * | iSort | 
| int_t | length | 
| int_t | first | 
| int_t | last | 
| int_t | lastusedindex | 
| int_t | physicallength | 
Friends | |
| class | DenseMatrix | 
| class | SymDenseMat | 
| class | SparseMatrix | 
| class | SparseMatrixRow | 
| class | SymSparseMat | 
This class manages index lists of active/inactive bounds/constraints.
| Indexlist::Indexlist | ( | const Indexlist & | rhs | ) | 
Destructor.
References clear().
| returnValue Indexlist::addNumber | ( | int_t | addnumber | ) | 
Adds number to index list.
| addnumber | Number to be added. | 
References findInsert(), iSort, length, number, physicallength, RET_INDEXLIST_EXCEEDS_MAX_LENGTH, SUCCESSFUL_RETURN, and THROWERROR.
Referenced by SubjectTo::addIndex(), Constraints::rotate(), Bounds::rotate(), Constraints::shift(), and Bounds::shift().
| returnValue Indexlist::clear | ( | ) |  [protected] | 
        
Frees all allocated memory.
References iSort, number, and SUCCESSFUL_RETURN.
Referenced by init(), operator=(), and ~Indexlist().
| returnValue Indexlist::copy | ( | const Indexlist & | rhs | ) |  [protected] | 
        
Copies all members from given rhs object.
| rhs | Rhs object. | 
References iSort, length, number, physicallength, and SUCCESSFUL_RETURN.
Referenced by Indexlist(), and operator=().
| int_t Indexlist::findInsert | ( | int_t | i | ) |  const [protected] | 
        
Find first index j between -1 and length in sorted list of indices iSort such that numbers[iSort[j]] <= i < numbers[iSort[j+1]]. Uses bisection.
References iSort, length, and number.
Referenced by addNumber(), getIndex(), removeNumber(), and swapNumbers().
| int_t Indexlist::getIndex | ( | int_t | givennumber | ) | const | 
Determines the index within the index list at which a given number is stored.
| givennumber | Number whose index shall be determined. | 
References findInsert(), iSort, and number.
Referenced by QProblemB::addBound(), isMember(), SQProblemSchur::removeConstraint(), and QProblem::removeConstraint().
| returnValue Indexlist::getISortArray | ( | int_t **const | iSortArray | ) | const | 
Creates an array of all numbers within the index set in correct order.
| iSortArray | Output: iSort Array. | 
References iSort, and SUCCESSFUL_RETURN.
Referenced by SQProblemSchur::determineStepDirection2().
| int_t Indexlist::getLastNumber | ( | ) |  const [inline] | 
        
Returns last number within the index list.
References length, and number.
Referenced by QProblem::addBound().
| int_t Indexlist::getLength | ( | ) |  const [inline] | 
        
Returns the current length of the index list.
References length.
Referenced by SQProblemSchur::addBound(), SQProblemSchur::addConstraint(), SQProblemSchur::addToSchurComplement(), SQProblemSchur::determineStepDirection2(), Constraints::getNAC(), Bounds::getNFR(), Bounds::getNFX(), Constraints::getNIAC(), Matrix::getSparseSubmatrix(), SQProblemSchur::removeBound(), and SQProblemSchur::removeConstraint().
| BEGIN_NAMESPACE_QPOASES int_t Indexlist::getNumber | ( | int_t | physicalindex | ) |  const [inline] | 
        
Returns the number stored at a given physical index.
| physicalindex | Physical index of the number to be returned. | 
References length, number, and RET_INDEXLIST_OUTOFBOUNDS.
Referenced by SQProblemSchur::repairSingularWorkingSet().
| returnValue Indexlist::getNumberArray | ( | int_t **const | numberarray | ) | const | 
Creates an array of all numbers within the index set in correct order.
| numberarray | Output: Array of numbers (NULL on error). | 
References number, RET_INVALID_ARGUMENTS, SUCCESSFUL_RETURN, and THROWERROR.
Referenced by SQProblemSchur::addBound(), QProblem::addBound(), SQProblemSchur::addBound_checkLISchur(), SQProblemSchur::addBound_ensureLI(), QProblem::addBound_ensureLI(), SQProblemSchur::addConstraint(), QProblem::addConstraint(), QProblem::addConstraint_checkLI(), SQProblemSchur::addConstraint_checkLISchur(), SQProblemSchur::addConstraint_ensureLI(), QProblem::addConstraint_ensureLI(), SolutionAnalysis::checkCurvatureOnStronglyActiveConstraints(), QProblemB::computeCholesky(), QProblem::computeProjectedCholesky(), SQProblemSchur::correctInertia(), QProblemB::determineDataShift(), QProblem::determineDataShift(), QProblem::determineStepDirection(), QProblemB::determineStepDirection(), SQProblemSchur::determineStepDirection2(), QProblem::dropInfeasibles(), QProblem::ensureNonzeroCurvature(), QProblem::getFreeVariablesFlags(), Matrix::getSparseSubmatrix(), SolutionAnalysis::getVarianceCovariance(), QProblem::performStep(), QProblemB::performStep(), Constraints::print(), Bounds::print(), SQProblemSchur::removeBound(), QProblem::removeBound(), QProblemB::removeBound(), SQProblemSchur::removeConstraint(), QProblem::removeConstraint(), QProblem::setupTQfactorisation(), QProblem::solveCurrentEQP(), and QProblem::writeQpWorkspaceIntoMatFile().
| returnValue Indexlist::init | ( | int_t | n = 0 | ) | 
Initialises index list of desired physical length.
| n | Physical length of index list. | 
References clear(), iSort, length, number, physicallength, RET_INVALID_ARGUMENTS, SUCCESSFUL_RETURN, and THROWERROR.
Referenced by Indexlist(), Bounds::init(), and Constraints::init().
| BooleanType Indexlist::isMember | ( | int_t | _number | ) |  const [inline] | 
        
Determines if a given number is contained in the index set.
| _number | Number to be tested for membership. | 
References BT_FALSE, BT_TRUE, and getIndex().
| returnValue Indexlist::removeNumber | ( | int_t | removenumber | ) | 
Removes number from index list.
| removenumber | Number to be removed. | 
References findInsert(), iSort, length, number, and SUCCESSFUL_RETURN.
Referenced by SubjectTo::removeIndex().
| returnValue Indexlist::swapNumbers | ( | int_t | number1, | 
| int_t | number2 | ||
| ) | 
Swaps two numbers within index list.
| number1 | First number for swapping. | 
| number2 | Second number for swapping. | 
References findInsert(), iSort, number, RET_INDEXLIST_CORRUPTED, SUCCESSFUL_RETURN, and THROWERROR.
Referenced by SubjectTo::swapIndex().
int_t Indexlist::first [protected] | 
        
Physical index of first element.
int_t* Indexlist::iSort [protected] | 
        
Index list to sort vector number
Referenced by addNumber(), SymSparseMat::bilinear(), clear(), copy(), findInsert(), SparseMatrix::getCol(), SparseMatrixRow::getCol(), getIndex(), getISortArray(), SparseMatrix::getRow(), SparseMatrixRow::getRow(), Indexlist(), init(), removeNumber(), swapNumbers(), DenseMatrix::times(), SparseMatrix::times(), SparseMatrixRow::times(), DenseMatrix::transTimes(), SparseMatrix::transTimes(), and SparseMatrixRow::transTimes().
int_t Indexlist::last [protected] | 
        
Physical index of last element.
int_t Indexlist::lastusedindex [protected] | 
        
Physical index of last entry in index list.
int_t Indexlist::length [protected] | 
        
Length of index list.
Referenced by addNumber(), SymDenseMat::bilinear(), SymSparseMat::bilinear(), copy(), findInsert(), DenseMatrix::getCol(), SparseMatrixRow::getCol(), getLastNumber(), getLength(), getNumber(), DenseMatrix::getRow(), SparseMatrix::getRow(), init(), removeNumber(), DenseMatrix::times(), SparseMatrix::times(), SparseMatrixRow::times(), DenseMatrix::transTimes(), SparseMatrix::transTimes(), and SparseMatrixRow::transTimes().
int_t* Indexlist::number [protected] | 
        
Array to store numbers of constraints or bounds.
Referenced by addNumber(), SymDenseMat::bilinear(), SymSparseMat::bilinear(), clear(), copy(), findInsert(), DenseMatrix::getCol(), SparseMatrix::getCol(), SparseMatrixRow::getCol(), getIndex(), getLastNumber(), getNumber(), getNumberArray(), DenseMatrix::getRow(), SparseMatrix::getRow(), SparseMatrixRow::getRow(), Indexlist(), init(), removeNumber(), swapNumbers(), DenseMatrix::times(), SparseMatrix::times(), SparseMatrixRow::times(), DenseMatrix::transTimes(), SparseMatrix::transTimes(), and SparseMatrixRow::transTimes().
int_t Indexlist::physicallength [protected] | 
        
Physical length of index list.
Referenced by addNumber(), copy(), and init().
 1.7.6.1