Public Member Functions | Private Attributes
Ipopt::SymMatrix Class Reference

This is the base class for all derived symmetric matrix types. More...

#include <IpSymMatrix.hpp>

Inheritance diagram for Ipopt::SymMatrix:
Ipopt::Matrix Ipopt::TaggedObject Ipopt::ReferencedObject Ipopt::Subject Ipopt::CompoundSymMatrix Ipopt::DenseSymMatrix Ipopt::DiagMatrix Ipopt::IdentityMatrix Ipopt::LowRankUpdateSymMatrix Ipopt::SumSymMatrix Ipopt::SymScaledMatrix Ipopt::SymTMatrix

List of all members.

Public Member Functions

SmartPtr< const SymMatrixSpaceOwnerSymMatrixSpace () 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 MatrixSpaceOwnerSpace () 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
 Print detailed information about the matrix.
- 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 ()
 Default destructor.
void AttachObserver (Observer::NotifyType notify_type, Observer *observer) const
 Attach the specified observer (i.e., begin recieving notifications).
void DetachObserver (Observer::NotifyType notify_type, Observer *observer) const
 Detach the specified observer (i.e., no longer recieve notifications).

Protected Member Functions

Overloaded methods from Matrix.
virtual void TransMultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const
 Since the matrix is symmetric, it is only necessary to implement the MultVectorImpl method in a class that inherits from this base class.
virtual void ComputeColAMaxImpl (Vector &cols_norms, bool init) const
 Since the matrix is symmetric, the row and column max norms are identical.
- 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 SymMatrixSpaceowner_space_
 Copy of the owner space ptr as a SymMatrixSpace instead of a MatrixSpace.

Detailed Description

This is the base class for all derived symmetric matrix types.

Definition at line 23 of file IpSymMatrix.hpp.


Constructor & Destructor Documentation

Ipopt::SymMatrix::SymMatrix ( const SymMatrixSpace owner_space)
inline

Constructor, taking the owner_space.

Definition at line 139 of file IpSymMatrix.hpp.

virtual Ipopt::SymMatrix::~SymMatrix ( )
inlinevirtual

Destructor.

Definition at line 33 of file IpSymMatrix.hpp.


Member Function Documentation

Index Ipopt::SymMatrix::Dim ( ) const
inline

Dimension of the matrix (number of rows and columns)

Reimplemented in Ipopt::IdentityMatrix.

Definition at line 146 of file IpSymMatrix.hpp.

SmartPtr< const SymMatrixSpace > Ipopt::SymMatrix::OwnerSymMatrixSpace ( ) const
inline

Definition at line 152 of file IpSymMatrix.hpp.

virtual void Ipopt::SymMatrix::TransMultVectorImpl ( Number  alpha,
const Vector x,
Number  beta,
Vector y 
) const
inlineprotectedvirtual

Since the matrix is symmetric, it is only necessary to implement the MultVectorImpl method in a class that inherits from this base class.

If the TransMultVectorImpl is called, this base class automatically calls MultVectorImpl instead.

Implements Ipopt::Matrix.

Definition at line 53 of file IpSymMatrix.hpp.

virtual void Ipopt::SymMatrix::ComputeColAMaxImpl ( Vector cols_norms,
bool  init 
) const
inlineprotectedvirtual

Since the matrix is symmetric, the row and column max norms are identical.

Implements Ipopt::Matrix.

Reimplemented in Ipopt::LowRankUpdateSymMatrix, and Ipopt::SumSymMatrix.

Definition at line 62 of file IpSymMatrix.hpp.


Member Data Documentation

const SymMatrixSpace* Ipopt::SymMatrix::owner_space_
private

Copy of the owner space ptr as a SymMatrixSpace instead of a MatrixSpace.

Reimplemented from Ipopt::Matrix.

Reimplemented in Ipopt::SymTMatrix, Ipopt::LowRankUpdateSymMatrix, Ipopt::DenseSymMatrix, Ipopt::CompoundSymMatrix, Ipopt::SymScaledMatrix, and Ipopt::SumSymMatrix.

Definition at line 72 of file IpSymMatrix.hpp.


The documentation for this class was generated from the following file: