This is the base class for all derived symmetric matrix types. More...
#include <IpSymMatrix.hpp>
Inheritance diagram for Ipopt::SymMatrix: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.