Go to the documentation of this file.
7 #ifndef __IPSCALEDMATRIX_HPP__
8 #define __IPSCALEDMATRIX_HPP__
17 class ScaledMatrixSpace;
42 void SetUnscaledMatrix(
47 void SetUnscaledMatrixNonConst(
66 virtual void MultVectorImpl(
73 virtual void TransMultVectorImpl(
80 virtual bool HasValidNumbersImpl()
const;
82 virtual void ComputeRowAMaxImpl(
87 virtual void ComputeColAMaxImpl(
92 virtual void PrintImpl(
96 const std::string& name,
98 const std::string& prefix
105 virtual void AddMSinvZImpl(
116 virtual void SinvBlrmZMTdBrImpl(
171 bool row_scaling_reciprocal,
174 bool column_scaling_reciprocal
184 bool allocate_unscaled_matrix =
false
188 if( allocate_unscaled_matrix )
198 return MakeNewScaledMatrix();
210 return unscaled_matrix_space_;
virtual Matrix * MakeNew() const
Pure virtual method for creating a new Matrix of the corresponding type.
ScaledMatrix * MakeNewScaledMatrix(bool allocate_unscaled_matrix=false) const
Method for creating a new matrix of this specific type.
SmartPtr< const MatrixSpace > UnscaledMatrixSpace() const
return the matrix space for the unscaled matrix
MatrixSpace base class, corresponding to the Matrix base class.
Class for a Matrix in conjunction with its scaling factors for row and column scaling.
SmartPtr< const Vector > ColumnScaling() const
return the vector for the column scaling
SmartPtr< const MatrixSpace > unscaled_matrix_space_
unscaled matrix space
SmartPtr< const Matrix > matrix_
const version of the unscaled matrix
SmartPtr< Vector > row_scaling_
Row scaling vector.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
double Number
Type of all numbers.
void SetUnscaledMatrixNonConst(const SmartPtr< Matrix > &unscaled_matrix)
Set the unscaled matrix in a non-const version.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
SmartPtr< Matrix > nonconst_matrix_
non-const version of the unscaled matrix
EJournalLevel
Print Level Enum.
void SetUnscaledMatrix(const SmartPtr< const Matrix > unscaled_matrix)
Set the unscaled matrix.
SmartPtr< Matrix > GetUnscaledMatrixNonConst()
Return the unscaled matrix in non-const form.
int Index
Type of all indices of vectors, matrices etc.
U * GetRawPtr(const SmartPtr< U > &smart_ptr)
Template class for Smart Pointers.
SmartPtr< const Vector > ColumnScaling() const
return the vector for the column scaling
EJournalCategory
Category Selection Enum.
SmartPtr< const Vector > RowScaling() const
return the vector for the row scaling
SmartPtr< const U > ConstPtr(const SmartPtr< U > &smart_ptr)
Class responsible for all message output.
This is the matrix space for ScaledMatrix.
~ScaledMatrixSpace()
Destructor.
SmartPtr< const ScaledMatrixSpace > owner_space_
Matrix space stored as a ScaledMatrixSpace.
bool IsValid(const SmartPtr< U > &smart_ptr)
SmartPtr< Vector > column_scaling_
column scaling vector
SmartPtr< const Matrix > GetUnscaledMatrix() const
Return the unscaled matrix in const form.
SmartPtr< const Vector > RowScaling() const
return the vector for the row scaling