#include <AsSchurData.hpp>
Public Member Functions | |
SchurData () | |
This interface serves as a reference point for multiple classes that need to use SchurData (PCalculator, SchurDriver). | |
virtual | ~SchurData () |
virtual SmartPtr< SchurData > | MakeNewSchurDataCopy () const =0 |
virtual void | SetData_Flag (Index dim, const Index *flags, Number v=1.0)=0 |
Functions to set the Schurdata. | |
virtual void | SetData_Flag (Index dim, const Index *flags, const Number *values)=0 |
Set Data to corresponing Number. | |
virtual Index | SetData_Index (Index dim, const Index *flags, Number v=1.0)=0 |
virtual void | SetData_List (const std::vector< Index > &list, Number v=1.0)=0 |
virtual void | AddData_List (std::vector< Index > cols, std::vector< Index > &delta_u_sort, Index &new_du_size, Index v)=0 |
virtual Index | GetNRowsAdded () const |
Returns number of rows/columns in schur matrix. | |
virtual bool | Is_Initialized () const |
virtual void | GetRow (Index i, IteratesVector &v) const =0 |
Returns the i-th column vector of the matrix. | |
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. | |
virtual void | Multiply (const IteratesVector &v, Vector &u) const =0 |
Computes A*v with A in R(nxm), KKT in R(n,n). | |
virtual void | TransMultiply (const Vector &u, IteratesVector &v) const =0 |
Computes B*v with B in R(mxn). | |
virtual void | PrintImpl (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const =0 |
void | Print (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent=0, const std::string &prefix="") const |
void | Print (SmartPtr< const Journalist > jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const |
Protected Member Functions | |
virtual void | Set_Initialized () |
virtual void | Set_NRows (Index nrows) |
Private Attributes | |
bool | initialized_ |
Makes sure that data is not set twice accidentially. | |
Index | nrows_ |
Number of columns/rows of corresponding Schur Matrix. |
Definition at line 18 of file AsSchurData.hpp.
Ipopt::SchurData::SchurData | ( | ) | [inline] |
This interface serves as a reference point for multiple classes that need to use SchurData (PCalculator, SchurDriver).
It declares as little as possible, so that SchurData implementations can be very special and fast.
I have not decided yet if there are certain ways I want to impose that SchurData can be set. I will figure this out as soon as I write the upstream classes that need to do that
Nomenclature in this program is based on Victor Zavalas thesis.
Definition at line 33 of file AsSchurData.hpp.
virtual Ipopt::SchurData::~SchurData | ( | ) | [inline, virtual] |
Definition at line 36 of file AsSchurData.hpp.
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::SetData_Flag | ( | Index | dim, | |
const Index * | flags, | |||
Number | v = 1.0 | |||
) | [pure virtual] |
Functions to set the Schurdata.
At least one must be overloaded Set Data to one for given indices. Size of vector is ipopt_x_<full_x_
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::SetData_Flag | ( | Index | dim, | |
const Index * | flags, | |||
const Number * | values | |||
) | [pure virtual] |
Set Data to corresponing Number.
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual Index Ipopt::SchurData::SetData_Index | ( | Index | dim, | |
const Index * | flags, | |||
Number | v = 1.0 | |||
) | [pure virtual] |
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::SetData_List | ( | const std::vector< Index > & | list, | |
Number | v = 1.0 | |||
) | [pure virtual] |
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::AddData_List | ( | std::vector< Index > | cols, | |
std::vector< Index > & | delta_u_sort, | |||
Index & | new_du_size, | |||
Index | v | |||
) | [pure virtual] |
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual Index Ipopt::SchurData::GetNRowsAdded | ( | ) | const [inline, virtual] |
Returns number of rows/columns in schur matrix.
Reimplemented in Ipopt::IndexSchurData.
Definition at line 57 of file AsSchurData.hpp.
virtual bool Ipopt::SchurData::Is_Initialized | ( | ) | const [inline, virtual] |
Definition at line 62 of file AsSchurData.hpp.
virtual void Ipopt::SchurData::GetRow | ( | Index | i, | |
IteratesVector & | v | |||
) | const [pure virtual] |
Returns the i-th column vector of the matrix.
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::GetMultiplyingVectors | ( | Index | row, | |
std::vector< Index > & | indices, | |||
std::vector< Number > & | factors | |||
) | const [pure virtual] |
Returns two vectors that are needed for matrix-vector multiplication of B and P.
The index is the row, the first vector are the indices of non-zero components, in this row of B, the second vector gives the numbers in B(row,indices)
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::Multiply | ( | const IteratesVector & | v, | |
Vector & | u | |||
) | const [pure virtual] |
Computes A*v with A in R(nxm), KKT in R(n,n).
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::TransMultiply | ( | const Vector & | u, | |
IteratesVector & | v | |||
) | const [pure virtual] |
Computes B*v with B in R(mxn).
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
virtual void Ipopt::SchurData::PrintImpl | ( | const Journalist & | jnlst, | |
EJournalLevel | level, | |||
EJournalCategory | category, | |||
const std::string & | name, | |||
Index | indent, | |||
const std::string & | prefix | |||
) | const [pure virtual] |
Implemented in Ipopt::IndexSchurData, and Ipopt::StdSchurData.
void Ipopt::SchurData::Print | ( | const Journalist & | jnlst, | |
EJournalLevel | level, | |||
EJournalCategory | category, | |||
const std::string & | name, | |||
Index | indent = 0 , |
|||
const std::string & | prefix = "" | |||
) | const [inline] |
Definition at line 91 of file AsSchurData.hpp.
void Ipopt::SchurData::Print | ( | SmartPtr< const Journalist > | jnlst, | |
EJournalLevel | level, | |||
EJournalCategory | category, | |||
const std::string & | name, | |||
Index | indent, | |||
const std::string & | prefix | |||
) | const [inline] |
Definition at line 103 of file AsSchurData.hpp.
virtual void Ipopt::SchurData::Set_Initialized | ( | ) | [inline, protected, virtual] |
Definition at line 117 of file AsSchurData.hpp.
virtual void Ipopt::SchurData::Set_NRows | ( | Index | nrows | ) | [inline, protected, virtual] |
Definition at line 122 of file AsSchurData.hpp.
bool Ipopt::SchurData::initialized_ [private] |
Makes sure that data is not set twice accidentially.
Definition at line 130 of file AsSchurData.hpp.
Index Ipopt::SchurData::nrows_ [private] |
Number of columns/rows of corresponding Schur Matrix.
Definition at line 133 of file AsSchurData.hpp.