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);
152 delete [] compressed_pos_;
153 delete [] expanded_pos_;
167 return MakeNewExpansionMatrix();
178 return expanded_pos_;
190 return compressed_pos_;
Number * x
Input: Starting point Output: Optimal solution.
virtual void AddMSinvZImpl(Number alpha, const Vector &S, const Vector &Z, Vector &X) const
X = beta*X + alpha*(Matrix S^{-1} Z).
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows 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 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 void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Compute the max-norm of the columns in the matrix.
double Number
Type of all numbers.
ExpansionMatrix * MakeNewExpansionMatrix() const
Method for creating a new matrix of this specific type.
EJournalLevel
Print Level Enum.
virtual Matrix * MakeNew() const
Overloaded MakeNew method for the MatrixSpace base class.
~ExpansionMatrixSpace()
Destructor.
const Index * CompressedPosIndices() const
Return the vector of indices marking the compressed position.
const Index * ExpandedPosIndices() const
Accessor Method to obtain the Index array (of length NSmallVec=NCols()) that stores the mapping from ...
MatrixSpace base class, corresponding to the Matrix base class.
This is the matrix space for ExpansionMatrix.
int Index
Type of all indices of vectors, matrices etc.
Class for expansion/projection matrices.
Class responsible for all message output.
ExpansionMatrix()
Default Constructor.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
friend class ParExpansionMatrix
const Index * ExpandedPosIndices() const
Return the vector of indices marking the expanded position.
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
const Index * CompressedPosIndices() const
Accessor Method to obtain the Index array (of length NLargeVec=NRows()) that stores the mapping from ...
const ExpansionMatrixSpace * owner_space_
~ExpansionMatrix()
Destructor.
EJournalCategory
Category Selection Enum.
virtual void TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix(transpose) vector multiply.
void operator=(const ExpansionMatrix &)
Overloaded Equals Operator.