9 #ifndef __IPMULTIVECTORMATRIX_HPP__
10 #define __IPMULTIVECTORMATRIX_HPP__
19 class MultiVectorMatrixSpace;
126 const std::string& name,
128 const std::string& prefix)
const;
bool IsValid(const SmartPtr< U > &smart_ptr)
Number * x
Input: Starting point Output: Optimal solution.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
virtual Matrix * MakeNew() const
Overloaded MakeNew method for the MatrixSpace base class.
MultiVectorMatrix * MakeNewMultiVectorMatrix() const
Method for creating a new matrix of this specific type.
~MultiVectorMatrix()
Destructor.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Compute the max-norm of the columns in the matrix.
void ScaleColumns(const Vector &scal_vec)
Method for scaling the columns of the matrix, using the Scal method for each column vector...
void SetVector(Index i, const Vector &vec)
Set a particular Vector at a given column position, replacing another vector if there has been one...
double Number
Type of all numbers.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
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.
std::vector< SmartPtr< const Vector > > const_vecs_
space for storing the const Vector's
void ScaleRows(const Vector &scal_vec)
Method for scaling the rows of the matrix, using the ElementWiseMultiply method for each column vecto...
MultiVectorMatrixSpace(Index ncols, const VectorSpace &vec_space)
Constructor, given the number of columns (i.e., Vectors to be stored) and given the VectorSpace for t...
Template class for Smart Pointers.
VectorSpace base class, corresponding to the Vector base class.
U * GetRawPtr(const SmartPtr< U > &smart_ptr)
SmartPtr< const Vector > GetVector(Index i) const
Get a Vector in a particular column as a const Vector.
const MultiVectorMatrixSpace * owner_space_
void AddRightMultMatrix(Number a, const MultiVectorMatrix &U, const Matrix &C, Number b)
Multiplying a Matrix C (for now assumed to be a DenseGenMatrix) from the right to a MultiVectorMatrix...
SmartPtr< const VectorSpace > vec_space_
Class for Matrices with few columns that consists of Vectors.
MatrixSpace base class, corresponding to the Matrix base class.
void LRMultVector(Number alpha, const Vector &x, Number beta, Vector &y) const
Method for adding the low-rank update matrix corresponding to this matrix to a vector.
~MultiVectorMatrixSpace()
Destructor.
int Index
Type of all indices of vectors, matrices etc.
const Vector * ConstVec(Index i) const
Method for accessing the internal Vectors internally.
void AddOneMultiVectorMatrix(Number a, const MultiVectorMatrix &mv1, Number c)
Adding another MultiVectorMatrix, using the AddOneVector methods for the individual column vectors...
SmartPtr< const VectorSpace > ColVectorSpace() const
Accessor method for the VectorSpace for the columns.
Index NCols() const
Number of columns.
SmartPtr< const MultiVectorMatrixSpace > MultiVectorMatrixOwnerSpace() const
Return the MultiVectorMatrixSpace.
void SetVectorNonConst(Index i, Vector &vec)
Class responsible for all message output.
virtual void TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix(transpose) vector multiply.
std::vector< SmartPtr< Vector > > non_const_vecs_
space for storing the non-const Vector's
This is the matrix space for MultiVectorMatrix.
MultiVectorMatrix()
Default Constructor.
SmartPtr< const VectorSpace > ColVectorSpace() const
Vector space for the columns.
void FillWithNewVectors()
Method for initializing all Vectors with new (uninitialized) Vectors.
SmartPtr< MultiVectorMatrix > MakeNewMultiVectorMatrix() const
Create a new MultiVectorMatrix from same MatrixSpace.
void operator=(const MultiVectorMatrix &)
Overloaded Equals Operator.
EJournalCategory
Category Selection Enum.
SmartPtr< Vector > GetVectorNonConst(Index i)
Get a Vector in a particular column as a non-const Vector.