qpOASES
3.1.1
|
Stores and manages index lists. More...
#include <Indexlist.hpp>
Public Member Functions | |
Indexlist () | |
Indexlist (int n) | |
Indexlist (const Indexlist &rhs) | |
~Indexlist () | |
Indexlist & | operator= (const Indexlist &rhs) |
returnValue | init (int n=0) |
returnValue | getNumberArray (int **const numberarray) const |
returnValue | getISortArray (int **const iSortArray) const |
int | getIndex (int givennumber) const |
int | getNumber (int physicalindex) const |
int | getLength () const |
int | getLastNumber () const |
returnValue | addNumber (int addnumber) |
returnValue | removeNumber (int removenumber) |
returnValue | swapNumbers (int number1, int number2) |
BooleanType | isMember (int _number) const |
Protected Member Functions | |
returnValue | clear () |
returnValue | copy (const Indexlist &rhs) |
int | findInsert (int i) const |
Protected Attributes | |
int * | number |
int * | iSort |
int | length |
int | first |
int | last |
int | lastusedindex |
int | physicallength |
Friends | |
class | DenseMatrix |
class | SymDenseMat |
class | SparseMatrix |
class | SparseMatrixRow |
class | SymSparseMat |
This class manages index lists of active/inactive bounds/constraints.
Indexlist::Indexlist | ( | int | n | ) |
Indexlist::Indexlist | ( | const Indexlist & | rhs | ) |
Destructor.
References clear().
returnValue Indexlist::addNumber | ( | int | 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 Indexlist::findInsert | ( | int | 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 Indexlist::getIndex | ( | int | 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(), and QProblem::removeConstraint().
returnValue Indexlist::getISortArray | ( | int **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.
int Indexlist::getLastNumber | ( | ) | const [inline] |
Returns last number within the index list.
References length, and number.
Referenced by QProblem::addBound().
int Indexlist::getLength | ( | ) | const [inline] |
Returns the current length of the index list.
References length.
Referenced by Constraints::getNAC(), Bounds::getNFR(), Bounds::getNFX(), and Constraints::getNIAC().
BEGIN_NAMESPACE_QPOASES int Indexlist::getNumber | ( | int | 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.
returnValue Indexlist::getNumberArray | ( | int **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 QProblem::addBound(), QProblem::addBound_ensureLI(), QProblem::addConstraint(), QProblem::addConstraint_checkLI(), QProblem::addConstraint_ensureLI(), QProblemB::computeCholesky(), QProblem::computeProjectedCholesky(), QProblemB::determineDataShift(), QProblem::determineDataShift(), QProblem::determineStepDirection(), QProblemB::determineStepDirection(), QProblem::dropInfeasibles(), QProblem::ensureNonzeroCurvature(), SolutionAnalysis::getVarianceCovariance(), QProblem::performStep(), QProblemB::performStep(), Constraints::print(), Bounds::print(), QProblem::removeBound(), QProblemB::removeBound(), QProblem::removeConstraint(), QProblem::setupTQfactorisation(), QProblem::solveCurrentEQP(), and QProblem::writeQpWorkspaceIntoMatFile().
returnValue Indexlist::init | ( | int | 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 | _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 | 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 | number1, |
int | 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 Indexlist::first [protected] |
Physical index of first element.
int* 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 Indexlist::last [protected] |
Physical index of last element.
int Indexlist::lastusedindex [protected] |
Physical index of last entry in index list.
int 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* 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 Indexlist::physicallength [protected] |
Physical length of index list.
Referenced by addNumber(), copy(), and init().