Class for expansion/projection matrices. More...
#include <IpExpansionMatrix.hpp>
Public Member Functions | |
const Index * | ExpandedPosIndices () const |
Return the vector of indices marking the expanded position. | |
const Index * | CompressedPosIndices () const |
Return the vector of indices marking the compressed position. | |
Constructors / Destructors | |
ExpansionMatrix (const ExpansionMatrixSpace *owner_space) | |
Constructor, taking the owner_space. | |
~ExpansionMatrix () | |
Destructor. | |
Protected Member Functions | |
Overloaded methods from Matrix base class | |
virtual void | MultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const |
X = beta*X + alpha*(Matrix S^{-1} Z). | |
virtual void | TransMultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const |
X = beta*X + alpha*(Matrix S^{-1} Z). | |
virtual void | AddMSinvZImpl (Number alpha, const Vector &S, const Vector &Z, Vector &X) const |
X = beta*X + alpha*(Matrix S^{-1} Z). | |
virtual void | SinvBlrmZMTdBrImpl (Number alpha, const Vector &S, const Vector &R, const Vector &Z, const Vector &D, Vector &X) const |
X = S^{-1} (r + alpha*Z*M^Td). | |
virtual void | PrintImpl (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const |
X = beta*X + alpha*(Matrix S^{-1} Z). | |
Private Member Functions | |
Default Compiler Generated Methods | |
ExpansionMatrix () | |
Default Constructor. | |
ExpansionMatrix (const ExpansionMatrix &) | |
Copy Constructor. | |
void | operator= (const ExpansionMatrix &) |
Overloaded Equals Operator. | |
Private Attributes | |
const ExpansionMatrixSpace * | owner_space_ |
Class for expansion/projection matrices.
These matrices allow to lift a vector to a vector with larger dimension, keeping some elements of the larger vector zero. This operation is achieved by the MultVector operation. The transpose operation then filters some elements from a large vector into a smaller vector.
Definition at line 27 of file IpExpansionMatrix.hpp.
Ipopt::ExpansionMatrix::ExpansionMatrix | ( | const ExpansionMatrixSpace * | owner_space | ) |
Constructor, taking the owner_space.
Ipopt::ExpansionMatrix::~ExpansionMatrix | ( | ) |
Destructor.
Ipopt::ExpansionMatrix::ExpansionMatrix | ( | ) | [private] |
Default Constructor.
Ipopt::ExpansionMatrix::ExpansionMatrix | ( | const ExpansionMatrix & | ) | [private] |
Copy Constructor.
const Index * Ipopt::ExpansionMatrix::ExpandedPosIndices | ( | ) | const [inline] |
Return the vector of indices marking the expanded position.
The result is the Index array (of length NSmallVec=NCols()) that stores the mapping from the small vector to the large vector. For each element i=0,..,NSmallVec in the small vector, ExpandedPosIndices()[i] give the corresponding index in the large vector.
Definition at line 183 of file IpExpansionMatrix.hpp.
const Index * Ipopt::ExpansionMatrix::CompressedPosIndices | ( | ) | const [inline] |
Return the vector of indices marking the compressed position.
The result is the Index array (of length NLargeVec=NRows()) that stores the mapping from the large vector to the small vector. For each element i=0,..,NLargeVec in the large vector, CompressedPosIndices()[i] gives the corresponding index in the small vector, unless CompressedPosIndices()[i] is negative.
Definition at line 189 of file IpExpansionMatrix.hpp.
virtual void Ipopt::ExpansionMatrix::PrintImpl | ( | const Journalist & | jnlst, | |
EJournalLevel | level, | |||
EJournalCategory | category, | |||
const std::string & | name, | |||
Index | indent, | |||
const std::string & | prefix | |||
) | const [protected, virtual] |
void Ipopt::ExpansionMatrix::operator= | ( | const ExpansionMatrix & | ) | [private] |
Overloaded Equals Operator.
Reimplemented from Ipopt::Matrix.
const ExpansionMatrixSpace* Ipopt::ExpansionMatrix::owner_space_ [private] |
Reimplemented from Ipopt::Matrix.
Definition at line 109 of file IpExpansionMatrix.hpp.