|
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().
1.7.6.1