7 #ifndef __ASSCHURDATA_HPP__
8 #define __ASSCHURDATA_HPP__
54 virtual void AddData_List(std::vector<Index> cols, std::vector<Index>& delta_u_sort,
Index& new_du_size,
Index v)=0;
87 const std::string& name,
89 const std::string& prefix)
const =0;
94 const std::string& name,
96 const std::string& prefix=
"")
const
99 PrintImpl(jnlst, level, category, name, indent, prefix);
106 const std::string& name,
108 const std::string& prefix)
const
110 if (
IsValid(jnlst) && jnlst->ProduceOutput(level, category)) {
111 PrintImpl(*jnlst, level, category, name, indent, prefix);
bool IsValid(const SmartPtr< U > &smart_ptr)
virtual void SetData_List(const std::vector< Index > &list, Number v=1.0)=0
Specialized CompoundVector class specifically for the algorithm iterates.
virtual Index SetData_Index(Index dim, const Index *flags, Number v=1.0)=0
SchurData()
This interface serves as a reference point for multiple classes that need to use SchurData (PCalculat...
void Print(SmartPtr< const Journalist > jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const
double Number
Type of all numbers.
virtual void AddData_List(std::vector< Index > cols, std::vector< Index > &delta_u_sort, Index &new_du_size, Index v)=0
EJournalLevel
Print Level Enum.
void Print(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent=0, const std::string &prefix="") const
virtual void Set_NRows(Index nrows)
Template class for Smart Pointers.
virtual void GetMultiplyingVectors(Index row, std::vector< Index > &indices, std::vector< Number > &factors) const =0
Returns two vectors that are needed for matrix-vector multiplication of B and P.
Index nrows_
Number of columns/rows of corresponding Schur Matrix.
virtual bool Is_Initialized() const
virtual Index GetNRowsAdded() const
Returns number of rows/columns in schur matrix.
virtual void Set_Initialized()
bool initialized_
Makes sure that data is not set twice accidentially.
int Index
Type of all indices of vectors, matrices etc.
virtual void GetRow(Index i, IteratesVector &v) const =0
Returns the i-th column vector of the matrix.
virtual void SetData_Flag(Index dim, const Index *flags, Number v=1.0)=0
Functions to set the Schurdata.
virtual void Multiply(const IteratesVector &v, Vector &u) const =0
Computes B*v with B in R(mxn)
virtual void TransMultiply(const Vector &u, IteratesVector &v) const =0
Computes A*u with A in R(nxm), KKT in R(n,n)
Class responsible for all message output.
virtual bool ProduceOutput(EJournalLevel level, EJournalCategory category) const
Method that returns true if there is a Journal that would write output for the given JournalLevel and...
virtual void PrintImpl(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const =0
EJournalCategory
Category Selection Enum.
virtual SmartPtr< SchurData > MakeNewSchurDataCopy() const =0