Class for symmetric matrices, represented as low-rank updates. More...
#include <IpLowRankUpdateSymMatrix.hpp>
Public Member Functions | |
void | SetDiag (const Vector &D) |
Method for setting the diagonal elements (as a Vector). | |
SmartPtr< const Vector > | GetDiag () const |
Method for getting the diagonal elements. | |
void | SetV (const MultiVectorMatrix &V) |
Method for setting the positive low-rank update part. | |
SmartPtr< const MultiVectorMatrix > | GetV () const |
Method for getting the positive low-rank update part. | |
void | SetU (const MultiVectorMatrix &U) |
Method for setting the negative low-rank update part. | |
SmartPtr< const MultiVectorMatrix > | GetU () const |
Method for getting the negative low-rank update part. | |
SmartPtr< const Matrix > | P_LowRank () const |
Return the expansion matrix to lift the low-rank update to the higher-dimensional space. | |
SmartPtr< const VectorSpace > | LowRankVectorSpace () const |
Return the vector space in with the low-rank update vectors live. | |
bool | ReducedDiag () const |
Flag indicating whether the diagonal term lives in the smaller space (from P_LowRank) or in the full space. | |
Constructors / Destructors | |
LowRankUpdateSymMatrix (const LowRankUpdateSymMatrixSpace *owner_space) | |
Constructor, given the corresponding matrix space. | |
~LowRankUpdateSymMatrix () | |
Destructor. | |
Protected Member Functions | |
Methods overloaded from matrix | |
virtual void | MultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
virtual bool | HasValidNumbersImpl () const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
virtual void | PrintImpl (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
Private Member Functions | |
Default Compiler Generated Methods | |
LowRankUpdateSymMatrix () | |
Default Constructor. | |
LowRankUpdateSymMatrix (const LowRankUpdateSymMatrix &) | |
Copy Constructor. | |
void | operator= (const LowRankUpdateSymMatrix &) |
Overloaded Equals Operator. | |
Private Attributes | |
SmartPtr< const LowRankUpdateSymMatrixSpace > | owner_space_ |
corresponding matrix space | |
SmartPtr< const Vector > | D_ |
Vector storing the diagonal matrix D. | |
SmartPtr< const MultiVectorMatrix > | V_ |
Vector storing the positive low-rank update. | |
SmartPtr< const MultiVectorMatrix > | U_ |
Vector storing the negative low-rank update. |
Class for symmetric matrices, represented as low-rank updates.
The matrix M is represented as M = P_LR(D + V V^T - U U^T)P_LR^T (if reduced_diag is true), or M = D + P_LR(V V^T - U U^T)P_LR^T (if reduced_diag is false). D is a diagonal matrix, and V and U are MultiVectorMatrices, and P_LR is an ExpansionMatrix. The vectors in the low-rank update (before expansion) live in the LowRankVectorSpace. If P_LR is NULL, P_LR is assumed to be the identity matrix. If V or U is NULL, it is assume to be a matrix of zero columns.
Definition at line 31 of file IpLowRankUpdateSymMatrix.hpp.
Ipopt::LowRankUpdateSymMatrix::LowRankUpdateSymMatrix | ( | const LowRankUpdateSymMatrixSpace * | owner_space | ) |
Constructor, given the corresponding matrix space.
Ipopt::LowRankUpdateSymMatrix::~LowRankUpdateSymMatrix | ( | ) |
Destructor.
Ipopt::LowRankUpdateSymMatrix::LowRankUpdateSymMatrix | ( | ) | [private] |
Default Constructor.
Ipopt::LowRankUpdateSymMatrix::LowRankUpdateSymMatrix | ( | const LowRankUpdateSymMatrix & | ) | [private] |
Copy Constructor.
void Ipopt::LowRankUpdateSymMatrix::SetDiag | ( | const Vector & | D | ) | [inline] |
Method for setting the diagonal elements (as a Vector).
Definition at line 46 of file IpLowRankUpdateSymMatrix.hpp.
Method for getting the diagonal elements.
Definition at line 53 of file IpLowRankUpdateSymMatrix.hpp.
void Ipopt::LowRankUpdateSymMatrix::SetV | ( | const MultiVectorMatrix & | V | ) | [inline] |
Method for setting the positive low-rank update part.
Definition at line 59 of file IpLowRankUpdateSymMatrix.hpp.
SmartPtr<const MultiVectorMatrix> Ipopt::LowRankUpdateSymMatrix::GetV | ( | ) | const [inline] |
Method for getting the positive low-rank update part.
Definition at line 66 of file IpLowRankUpdateSymMatrix.hpp.
void Ipopt::LowRankUpdateSymMatrix::SetU | ( | const MultiVectorMatrix & | U | ) | [inline] |
Method for setting the negative low-rank update part.
Definition at line 72 of file IpLowRankUpdateSymMatrix.hpp.
SmartPtr<const MultiVectorMatrix> Ipopt::LowRankUpdateSymMatrix::GetU | ( | ) | const [inline] |
Method for getting the negative low-rank update part.
Definition at line 79 of file IpLowRankUpdateSymMatrix.hpp.
Return the expansion matrix to lift the low-rank update to the higher-dimensional space.
Definition at line 233 of file IpLowRankUpdateSymMatrix.hpp.
SmartPtr< const VectorSpace > Ipopt::LowRankUpdateSymMatrix::LowRankVectorSpace | ( | ) | const [inline] |
Return the vector space in with the low-rank update vectors live.
Definition at line 239 of file IpLowRankUpdateSymMatrix.hpp.
bool Ipopt::LowRankUpdateSymMatrix::ReducedDiag | ( | ) | const [inline] |
Flag indicating whether the diagonal term lives in the smaller space (from P_LowRank) or in the full space.
Definition at line 245 of file IpLowRankUpdateSymMatrix.hpp.
virtual void Ipopt::LowRankUpdateSymMatrix::MultVectorImpl | ( | Number | alpha, | |
const Vector & | x, | |||
Number | beta, | |||
Vector & | y | |||
) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Implements Ipopt::Matrix.
virtual bool Ipopt::LowRankUpdateSymMatrix::HasValidNumbersImpl | ( | ) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Reimplemented from Ipopt::Matrix.
virtual void Ipopt::LowRankUpdateSymMatrix::PrintImpl | ( | const Journalist & | jnlst, | |
EJournalLevel | level, | |||
EJournalCategory | category, | |||
const std::string & | name, | |||
Index | indent, | |||
const std::string & | prefix | |||
) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Implements Ipopt::Matrix.
void Ipopt::LowRankUpdateSymMatrix::operator= | ( | const LowRankUpdateSymMatrix & | ) | [private] |
Overloaded Equals Operator.
Reimplemented from Ipopt::Matrix.
corresponding matrix space
Reimplemented from Ipopt::SymMatrix.
Definition at line 134 of file IpLowRankUpdateSymMatrix.hpp.
SmartPtr<const Vector> Ipopt::LowRankUpdateSymMatrix::D_ [private] |
Vector storing the diagonal matrix D.
Definition at line 137 of file IpLowRankUpdateSymMatrix.hpp.
SmartPtr<const MultiVectorMatrix> Ipopt::LowRankUpdateSymMatrix::V_ [private] |
Vector storing the positive low-rank update.
Definition at line 140 of file IpLowRankUpdateSymMatrix.hpp.
SmartPtr<const MultiVectorMatrix> Ipopt::LowRankUpdateSymMatrix::U_ [private] |
Vector storing the negative low-rank update.
Definition at line 143 of file IpLowRankUpdateSymMatrix.hpp.