9 #ifndef __IPSUMSYMMATRIX_HPP__
10 #define __IPSUMSYMMATRIX_HPP__
19 class SumSymMatrixSpace;
68 const std::string& name,
70 const std::string& prefix)
const;
Number * x
Input: Starting point Output: Optimal solution.
Class responsible for all message output.
Template class for Smart Pointers.
Class for matrix space for SumSymMatrix.
void SetTermSpace(Index term_idx, const SymMatrixSpace &space)
Use this method to set the matrix spaces for the various terms.
std::vector< SmartPtr< const SymMatrixSpace > > term_spaces_
~SumSymMatrixSpace()
Destructor.
virtual SymMatrix * MakeNewSymMatrix() const
Overloaded MakeNew method for the SymMatrixSpace base class.
Index NTerms() const
Number of terms in the sum.
SmartPtr< const SymMatrixSpace > GetTermSpace(Index term_idx) const
Get the matix space for a particular term.
SumSymMatrixSpace(Index ndim, Index nterms)
Constructor, given the dimension of the matrix and the number of terms in the sum.
SumSymMatrix * MakeNewSumSymMatrix() const
Method for creating a new matrix of this specific type.
Class for Matrices which are sum of symmetric matrices.
void SetTerm(Index iterm, Number factor, const SymMatrix &matrix)
Method for setting term iterm for the sum.
SumSymMatrix(const SumSymMatrixSpace *owner_space)
Constructor, initializing with dimensions of the matrix and the number of terms in the sum.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
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
Print detailed information about the matrix.
SumSymMatrix(const SumSymMatrix &)
Copy Constructor.
void GetTerm(Index iterm, Number &factor, SmartPtr< const SymMatrix > &matrix) const
Method for getting term iterm for the sum.
SumSymMatrix()
Default Constructor.
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Since the matrix is symmetric, the row and column max norms are identical.
std::vector< Number > factors_
std::vector storing the factors for each term.
Index NTerms() const
Return the number of terms.
void operator=(const SumSymMatrix &)
Overloaded Equals Operator.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
std::vector< SmartPtr< const SymMatrix > > matrices_
std::vector storing the matrices for each term.
const SumSymMatrixSpace * owner_space_
Copy of the owner_space as a SumSymMatrixSpace.
~SumSymMatrix()
Destructor.
SymMatrixSpace base class, corresponding to the SymMatrix base class.
This is the base class for all derived symmetric matrix types.
EJournalCategory
Category Selection Enum.
int Index
Type of all indices of vectors, matrices etc.
EJournalLevel
Print Level Enum.
double Number
Type of all numbers.