This is the base class for all derived symmetric matrix types. More...
#include <IpSymMatrix.hpp>
Public Member Functions | |
SmartPtr< const SymMatrixSpace > | OwnerSymMatrixSpace () const |
Constructor/Destructor | |
SymMatrix (const SymMatrixSpace *owner_space) | |
Constructor, taking the owner_space. | |
virtual | ~SymMatrix () |
Destructor. | |
Information about the size of the matrix | |
Index | Dim () const |
Dimension of the matrix (number of rows and columns) | |
Public Member Functions inherited from Ipopt::Matrix | |
bool | HasValidNumbers () const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
SmartPtr< const MatrixSpace > | OwnerSpace () const |
Return the owner MatrixSpace. | |
Matrix (const MatrixSpace *owner_space) | |
Constructor. | |
virtual | ~Matrix () |
Destructor. | |
void | MultVector (Number alpha, const Vector &x, Number beta, Vector &y) const |
Matrix-vector multiply. | |
void | TransMultVector (Number alpha, const Vector &x, Number beta, Vector &y) const |
Matrix(transpose) vector multiply. | |
void | AddMSinvZ (Number alpha, const Vector &S, const Vector &Z, Vector &X) const |
X = X + alpha*(Matrix S^{-1} Z). | |
void | SinvBlrmZMTdBr (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). | |
Index | NRows () const |
Number of rows. | |
Index | NCols () const |
Number of columns. | |
void | ComputeRowAMax (Vector &rows_norms, bool init=true) const |
Compute the max-norm of the rows in the matrix. | |
void | ComputeColAMax (Vector &cols_norms, bool init=true) const |
Compute the max-norm of the columns in the matrix. | |
virtual void | Print (SmartPtr< const Journalist > jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent=0, const std::string &prefix="") const |
Print detailed information about the matrix. | |
virtual void | Print (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent=0, const std::string &prefix="") const |
Public Member Functions inherited from Ipopt::TaggedObject | |
TaggedObject () | |
Constructor. | |
virtual | ~TaggedObject () |
Destructor. | |
Tag | GetTag () const |
Users of TaggedObjects call this to update their own internal tags every time they perform the expensive operation. | |
bool | HasChanged (const Tag comparison_tag) const |
Users of TaggedObjects call this to check if the object HasChanged since they last updated their own internal tag. | |
Public Member Functions inherited from Ipopt::ReferencedObject | |
ReferencedObject () | |
virtual | ~ReferencedObject () |
Index | ReferenceCount () const |
void | AddRef (const Referencer *referencer) const |
void | ReleaseRef (const Referencer *referencer) const |
Public Member Functions inherited from Ipopt::Subject | |
Subject () | |
Default Constructor. | |
virtual | ~Subject () |
Destructor. | |
void | AttachObserver (Observer::NotifyType notify_type, Observer *observer) const |
Attach the specified observer (i.e., begin receiving notifications). | |
void | DetachObserver (Observer::NotifyType notify_type, Observer *observer) const |
Detach the specified observer (i.e., no longer receive notifications). | |
Protected Member Functions | |
Overloaded methods from Matrix. | |
virtual void | TransMultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const |
Implementation of TransMultVectorImpl, which calls MultVectorImpl. | |
virtual void | ComputeColAMaxImpl (Vector &cols_norms, bool init) const |
Implementation of ComputeColAMaxImpl, which calls ComputeRowAMaxImpl. | |
Protected Member Functions inherited from Ipopt::Matrix | |
virtual void | MultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const =0 |
Matrix-vector multiply. | |
virtual void | AddMSinvZImpl (Number alpha, const Vector &S, const Vector &Z, Vector &X) const |
X = 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 bool | HasValidNumbersImpl () const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
virtual void | ComputeRowAMaxImpl (Vector &rows_norms, bool init) const =0 |
Compute the max-norm of the rows in the matrix. | |
virtual void | PrintImpl (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const =0 |
Print detailed information about the matrix. | |
Protected Member Functions inherited from Ipopt::TaggedObject | |
void | ObjectChanged () |
Objects derived from TaggedObject MUST call this method every time their internal state changes to update the internal tag for comparison. | |
Protected Member Functions inherited from Ipopt::Subject | |
void | Notify (Observer::NotifyType notify_type) const |
Private Attributes | |
const SymMatrixSpace * | owner_space_ |
Copy of the owner space ptr as a SymMatrixSpace instead of a MatrixSpace. | |
Additional Inherited Members | |
Public Types inherited from Ipopt::TaggedObject | |
typedef unsigned int | Tag |
Type for the Tag values. | |
This is the base class for all derived symmetric matrix types.
Definition at line 20 of file IpSymMatrix.hpp.
|
inline |
Constructor, taking the owner_space.
Definition at line 148 of file IpSymMatrix.hpp.
|
inlinevirtual |
Destructor.
Definition at line 32 of file IpSymMatrix.hpp.
|
inline |
Dimension of the matrix (number of rows and columns)
Definition at line 155 of file IpSymMatrix.hpp.
|
inline |
Definition at line 160 of file IpSymMatrix.hpp.
|
inlineprotectedvirtual |
Implementation of TransMultVectorImpl, which calls MultVectorImpl.
Since the matrix is symmetric, it is only necessary to implement the MultVectorImpl method in a class that inherits from this base class.
Implements Ipopt::Matrix.
Reimplemented in Ipopt::ZeroSymMatrix.
Definition at line 53 of file IpSymMatrix.hpp.
|
inlineprotectedvirtual |
Implementation of ComputeColAMaxImpl, which calls ComputeRowAMaxImpl.
Since the matrix is symmetric, the row and column max norms are identical.
Implements Ipopt::Matrix.
Reimplemented in Ipopt::ZeroSymMatrix, Ipopt::LowRankUpdateSymMatrix, and Ipopt::SumSymMatrix.
Definition at line 68 of file IpSymMatrix.hpp.
|
private |
Copy of the owner space ptr as a SymMatrixSpace instead of a MatrixSpace.
Definition at line 81 of file IpSymMatrix.hpp.