Go to the documentation of this file.
7 #ifndef __IPLOWRANKUPDATESYMMATRIX_HPP__
8 #define __IPLOWRANKUPDATESYMMATRIX_HPP__
18 class LowRankUpdateSymMatrixSpace;
129 const std::string& name,
131 const std::string& prefix
This is the matrix space for LowRankUpdateSymMatrix.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Implementation of ComputeColAMaxImpl, which calls ComputeRowAMaxImpl.
virtual void PrintImpl(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const
Print detailed information about the matrix.
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Class for Matrices with few columns that consists of Vectors.
void SetV(const MultiVectorMatrix &V)
Method for setting the positive low-rank update part.
SmartPtr< const Vector > GetDiag() const
Method for getting the diagonal elements.
LowRankUpdateSymMatrix * MakeNewLowRankUpdateSymMatrix() const
Method for creating a new matrix of this specific type.
SmartPtr< const VectorSpace > lowrank_vector_space_
Vector space for the space in which the low-rank approximation lives.
SmartPtr< const MultiVectorMatrix > GetU() const
Method for getting the negative low-rank update part.
LowRankUpdateSymMatrix()
Default Constructor.
SmartPtr< const VectorSpace > LowRankVectorSpace() const
SmartPtr< const LowRankUpdateSymMatrixSpace > owner_space_
corresponding matrix space
SmartPtr< const VectorSpace > LowRankVectorSpace() const
Return the vector space in with the low-rank update vectors live.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
double Number
Type of all numbers.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
EJournalLevel
Print Level Enum.
LowRankUpdateSymMatrixSpace(Index dim, SmartPtr< const Matrix > P_LowRank, SmartPtr< const VectorSpace > LowRankVectorSpace, bool reduced_diag)
Constructor, given the dimension of the matrix.
virtual ~LowRankUpdateSymMatrixSpace()
Destructor.
SmartPtr< const Vector > D_
Vector storing the diagonal matrix D.
bool ReducedDiag() const
Flag indicating whether the diagonal term lives in the smaller space (from P_LowRank) or in the full ...
int Index
Type of all indices of vectors, matrices etc.
LowRankUpdateSymMatrix(const LowRankUpdateSymMatrixSpace *owner_space)
Constructor, given the corresponding matrix space.
Template class for Smart Pointers.
void SetDiag(const Vector &D)
Method for setting the diagonal elements (as a Vector).
EJournalCategory
Category Selection Enum.
LowRankUpdateSymMatrixSpace(const LowRankUpdateSymMatrixSpace &)
Copy Constructor.
LowRankUpdateSymMatrixSpace()
Default Constructor.
SmartPtr< const Matrix > P_LowRank() const
Return the expansion matrix to lift the low-rank update to the higher-dimensional space.
~LowRankUpdateSymMatrix()
Destructor.
SmartPtr< const Matrix > P_LowRank() const
Class responsible for all message output.
void operator=(const LowRankUpdateSymMatrixSpace &)
Default Assignment Operator.
virtual SymMatrix * MakeNewSymMatrix() const
Pure virtual method for creating a new matrix of this specific type.
This is the base class for all derived symmetric matrix types.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
SmartPtr< const MultiVectorMatrix > GetV() const
Method for getting the positive low-rank update part.
SymMatrixSpace base class, corresponding to the SymMatrix base class.
bool IsValid(const SmartPtr< U > &smart_ptr)
SmartPtr< const MultiVectorMatrix > V_
Vector storing the positive low-rank update.
SmartPtr< const Matrix > P_LowRank_
Expansion matrix to lift the low-rank approximation into a possibly higher-dimensional space.
LowRankUpdateSymMatrix(const LowRankUpdateSymMatrix &)
Copy Constructor.
void SetU(const MultiVectorMatrix &U)
Method for setting the negative low-rank update part.
bool reduced_diag_
Flag indicating whether the diagonal matrix is nonzero only in the space of V or in the full space.
void operator=(const LowRankUpdateSymMatrix &)
Default Assignment Operator.
Class for symmetric matrices, represented as low-rank updates.
SmartPtr< const MultiVectorMatrix > U_
Vector storing the negative low-rank update.