7#ifndef __IPEXPANDEDMULTIVECTORMATRIX_HPP__
8#define __IPEXPANDEDMULTIVECTORMATRIX_HPP__
18class ExpandedMultiVectorMatrixSpace;
108 const std::string&
name,
141 std::vector<SmartPtr<const Vector> >
vecs_;
195 return owner_space_->MakeNewExpandedMultiVectorMatrix();
Templated class which stores one entry for the CachedResult class.
This is the matrix space for ExpandedMultiVectorMatrix.
ExpandedMultiVectorMatrix * MakeNewExpandedMultiVectorMatrix() const
Method for creating a new matrix of this specific type.
virtual Matrix * MakeNew() const
Pure virtual method for creating a new Matrix of the corresponding type.
SmartPtr< const VectorSpace > RowVectorSpace() const
Accessor method for the VectorSpace for the rows.
ExpandedMultiVectorMatrixSpace(Index nrows, const VectorSpace &vec_space, SmartPtr< const ExpansionMatrix > exp_matrix)
Constructor, given the number of rows (i.e., Vectors to be stored) and given the VectorSpace for the ...
SmartPtr< const ExpansionMatrix > exp_matrix_
virtual ~ExpandedMultiVectorMatrixSpace()
Destructor.
SmartPtr< const ExpansionMatrix > GetExpansionMatrix() const
SmartPtr< const VectorSpace > vec_space_
Class for Matrices with few rows that consists of Vectors, together with a premultiplied Expansion ma...
std::vector< SmartPtr< const Vector > > vecs_
space for storing the const Vector's
virtual ~ExpandedMultiVectorMatrix()
Destructor.
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
SmartPtr< const ExpandedMultiVectorMatrixSpace > ExpandedMultiVectorMatrixOwnerSpace() const
Return the ExpandedMultiVectorMatrixSpace.
SmartPtr< const ExpansionMatrix > GetExpansionMatrix() const
Return the Expansion matrix.
SmartPtr< const Vector > GetVector(Index i) const
Get a Vector in a particular row as a const Vector.
SmartPtr< const VectorSpace > RowVectorSpace() const
Vector space for the rows.
ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrixSpace *owner_space)
Constructor, taking the owner_space.
virtual void TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix(transpose) vector multiply.
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.
SmartPtr< ExpandedMultiVectorMatrix > MakeNewExpandedMultiVectorMatrix() const
void operator=(const ExpandedMultiVectorMatrix &)
Default Assignment Operator.
ExpandedMultiVectorMatrix()
Default Constructor.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Compute the max-norm of the columns in the matrix.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
void SetVector(Index i, SmartPtr< const Vector > vec)
Set a particular Vector at a given row position, replacing another vector if there has been one.
const ExpandedMultiVectorMatrixSpace * owner_space_
ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrix &)
Copy Constructor.
Class responsible for all message output.
MatrixSpace base class, corresponding to the Matrix base class.
Index NRows() const
Number of rows.
VectorSpace base class, corresponding to the Vector base class.
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.