9 #ifndef __IPEXPANSIONMATRIX_HPP__
10 #define __IPEXPANSIONMATRIX_HPP__
19 class ExpansionMatrixSpace;
88 const std::string& name,
90 const std::string& prefix)
const
99 const std::string& name,
101 const std::string& prefix,
103 Index col_offset)
const;
147 const int offset = 0);
Number * x
Input: Starting point Output: Optimal solution.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Compute the max-norm of the columns in the matrix.
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 void TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix(transpose) vector multiply.
double Number
Type of all numbers.
const Index * CompressedPosIndices() const
Accessor Method to obtain the Index array (of length NLargeVec=NRows()) that stores the mapping from ...
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.
EJournalLevel
Print Level Enum.
~ExpansionMatrixSpace()
Destructor.
void PrintImplOffset(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix, Index row_offset, Index col_offset) const
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
virtual void AddMSinvZImpl(Number alpha, const Vector &S, const Vector &Z, Vector &X) const
X = beta*X + alpha*(Matrix S^{-1} Z).
const Index * CompressedPosIndices() const
Return the vector of indices marking the compressed position.
MatrixSpace base class, corresponding to the Matrix base class.
This is the matrix space for ExpansionMatrix.
ExpansionMatrixSpace(Index NLargeVec, Index NSmallVec, const Index *ExpPos, const int offset=0)
Constructor, given the list of elements of the large vector (of size NLargeVec) to be filtered into t...
int Index
Type of all indices of vectors, matrices etc.
Class for expansion/projection matrices.
Class responsible for all message output.
virtual Matrix * MakeNew() const
Overloaded MakeNew method for the MatrixSpace base class.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
ExpansionMatrix()
Default Constructor.
friend class ParExpansionMatrix
const Index * ExpandedPosIndices() const
Accessor Method to obtain the Index array (of length NSmallVec=NCols()) that stores the mapping from ...
const Index * ExpandedPosIndices() const
Return the vector of indices marking the expanded position.
const ExpansionMatrixSpace * owner_space_
ExpansionMatrix * MakeNewExpansionMatrix() const
Method for creating a new matrix of this specific type.
~ExpansionMatrix()
Destructor.
EJournalCategory
Category Selection Enum.
void operator=(const ExpansionMatrix &)
Overloaded Equals Operator.