#include <IpLowRankUpdateSymMatrix.hpp>
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.
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). |
LowRankUpdateSymMatrix | ( | const LowRankUpdateSymMatrixSpace * | owner_space | ) |
Constructor, given the corresponding matrix space.
Destructor.
void SetDiag | ( | const Vector & | D | ) | [inline] |
void SetV | ( | const MultiVectorMatrix & | V | ) | [inline] |
SmartPtr<const MultiVectorMatrix> GetV | ( | ) | const [inline] |
Method for getting the positive low-rank update part.
void SetU | ( | const MultiVectorMatrix & | U | ) | [inline] |
SmartPtr<const MultiVectorMatrix> GetU | ( | ) | const [inline] |
Method for getting the negative low-rank update part.
Return the expansion matrix to lift the low-rank update to the higher-dimensional space.
Referenced by LowRankUpdateSymMatrix::MultVectorImpl().
SmartPtr< const VectorSpace > LowRankVectorSpace | ( | ) | const [inline] |
Return the vector space in with the low-rank update vectors live.
Referenced by LowRankUpdateSymMatrix::MultVectorImpl().
bool ReducedDiag | ( | ) | const [inline] |
Flag indicating whether the diagonal term lives in the smaller space (from P_LowRank) or in the full space.
Referenced by LowRankUpdateSymMatrix::MultVectorImpl(), and LowRankUpdateSymMatrix::PrintImpl().
void 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 Matrix.
References Vector::AddOneVector(), DBG_ASSERT, DBG_PRINT_VECTOR, DBG_START_METH, Vector::Dim(), SymMatrix::Dim(), Vector::ElementWiseMultiply(), Ipopt::IsNull(), Ipopt::IsValid(), LowRankUpdateSymMatrix::LowRankVectorSpace(), Vector::MakeNewCopy(), LowRankUpdateSymMatrix::P_LowRank(), and LowRankUpdateSymMatrix::ReducedDiag().
bool HasValidNumbersImpl | ( | ) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Reimplemented from Matrix.
References DBG_ASSERT, and Ipopt::IsValid().
void 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 Matrix.
References SymMatrix::Dim(), Ipopt::IsValid(), Journalist::Printf(), Journalist::PrintfIndented(), and LowRankUpdateSymMatrix::ReducedDiag().