9 #ifndef __IPLOWRANKUPDATESYMMATRIX_HPP__ 10 #define __IPLOWRANKUPDATESYMMATRIX_HPP__ 20 class LowRankUpdateSymMatrixSpace;
113 const std::string& name,
115 const std::string& prefix)
const;
163 P_LowRank_(P_LowRank),
164 lowrank_vector_space_(LowRankVectorSpace),
165 reduced_diag_(reduced_diag)
179 return MakeNewLowRankUpdateSymMatrix();
195 return lowrank_vector_space_;
200 return reduced_diag_;
virtual SymMatrix * MakeNewSymMatrix() const
Overloaded MakeNew method for the SymMatrixSpace base class.
LowRankUpdateSymMatrix()
Default Constructor.
SmartPtr< const Matrix > P_LowRank() const
bool IsValid(const SmartPtr< U > &smart_ptr)
Number * x
Input: Starting point Output: Optimal solution.
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.
void SetV(const MultiVectorMatrix &V)
Method for setting the positive low-rank update part.
SmartPtr< const VectorSpace > lowrank_vector_space_
Vector space for the space in which the low-rank approximation lives.
SmartPtr< const Matrix > P_LowRank() const
Return the expansion matrix to lift the low-rank update to the higher-dimensional space...
SmartPtr< const MultiVectorMatrix > U_
Vector storing the negative low-rank update.
double Number
Type of all numbers.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
LowRankUpdateSymMatrixSpace(Index dim, SmartPtr< const Matrix > P_LowRank, SmartPtr< const VectorSpace > LowRankVectorSpace, bool reduced_diag)
Constructor, given the dimension of the matrix.
EJournalLevel
Print Level Enum.
~LowRankUpdateSymMatrix()
Destructor.
This is the base class for all derived symmetric matrix types.
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Template class for Smart Pointers.
SmartPtr< const LowRankUpdateSymMatrixSpace > owner_space_
corresponding matrix space
virtual ~LowRankUpdateSymMatrixSpace()
Destructor.
void operator=(const LowRankUpdateSymMatrix &)
Overloaded Equals Operator.
SmartPtr< const VectorSpace > LowRankVectorSpace() const
SmartPtr< const MultiVectorMatrix > GetV() const
Method for getting the positive low-rank update part.
Class for Matrices with few columns that consists of Vectors.
SmartPtr< const VectorSpace > LowRankVectorSpace() const
Return the vector space in with the low-rank update vectors live.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
void SetDiag(const Vector &D)
Method for setting the diagonal elements (as a Vector).
int Index
Type of all indices of vectors, matrices etc.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
bool ReducedDiag() const
Flag indicating whether the diagonal term lives in the smaller space (from P_LowRank) or in the full ...
This is the matrix space for LowRankUpdateSymMatrix.
bool reduced_diag_
Flag indicating whether the diagonal matrix is nonzero only in the space of V or in the full space...
SymMatrixSpace base class, corresponding to the SymMatrix base class.
Class responsible for all message output.
void SetU(const MultiVectorMatrix &U)
Method for setting the negative low-rank update part.
SmartPtr< const Vector > D_
Vector storing the diagonal matrix D.
SmartPtr< const MultiVectorMatrix > GetU() const
Method for getting the negative low-rank update part.
SmartPtr< const MultiVectorMatrix > V_
Vector storing the positive low-rank update.
Class for symmetric matrices, represented as low-rank updates.
SmartPtr< const Vector > GetDiag() const
Method for getting the diagonal elements.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Since the matrix is symmetric, the row and column max norms are identical.
LowRankUpdateSymMatrix * MakeNewLowRankUpdateSymMatrix() const
Method for creating a new matrix of this specific type.
EJournalCategory
Category Selection Enum.
SmartPtr< const Matrix > P_LowRank_
Expansion matrix to lift the low-rank approximation into a possibly higher-dimensional space...