7#ifndef __IPEXPANSIONMATRIX_HPP__
8#define __IPEXPANSIONMATRIX_HPP__
110 const std::string& name,
112 const std::string& prefix
123 const std::string& name,
125 const std::string& prefix,
This is the matrix space for ExpansionMatrix.
~ExpansionMatrixSpace()
Destructor.
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...
virtual Matrix * MakeNew() const
Pure virtual method for creating a new Matrix of the corresponding type.
const Index * CompressedPosIndices() const
Accessor Method to obtain the Index array (of length NLargeVec=NRows()) that stores the mapping from ...
ExpansionMatrix * MakeNewExpansionMatrix() const
Method for creating a new matrix of this specific type.
const Index * ExpandedPosIndices() const
Accessor Method to obtain the Index array (of length NSmallVec=NCols()) that stores the mapping from ...
Class for expansion/projection matrices.
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.
ExpansionMatrix(const ExpansionMatrix &)
Copy Constructor.
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).
friend class ParExpansionMatrix
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
const Index * ExpandedPosIndices() const
Return the vector of indices marking the expanded position.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Compute the max-norm of the columns in the matrix.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
~ExpansionMatrix()
Destructor.
const Index * CompressedPosIndices() const
Return the vector of indices marking the compressed position.
virtual void TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix(transpose) vector multiply.
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
void operator=(const ExpansionMatrix &)
Default Assignment Operator.
const ExpansionMatrixSpace * owner_space_
ExpansionMatrix(const ExpansionMatrixSpace *owner_space)
Constructor, taking the owner_space.
virtual void AddMSinvZImpl(Number alpha, const Vector &S, const Vector &Z, Vector &X) const
X = X + alpha*(Matrix S^{-1} Z).
ExpansionMatrix()
Default Constructor.
Class responsible for all message output.
MatrixSpace(Index nRows, Index nCols)
Constructor, given the number rows and columns of all matrices generated by this MatrixSpace.
Matrix(const MatrixSpace *owner_space)
Constructor.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
EJournalCategory
Category Selection Enum.
EJournalLevel
Print Level Enum.
ipnumber Number
Type of all numbers.