# Ipopt::SchurData Class Reference

`#include <SensSchurData.hpp>`

Inheritance diagram for Ipopt::SchurData:
[legend]

List of all members.

## 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 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).
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.

## Detailed Description

Definition at line 18 of file SensSchurData.hpp.

## Constructor & Destructor Documentation

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 SensSchurData.hpp.

virtual Ipopt::SchurData::~SchurData | ( |  | ) | `[inline, virtual]`

Definition at line 36 of file SensSchurData.hpp.

## Member Function Documentation

virtual SmartPtr<SchurData> Ipopt::SchurData::MakeNewSchurDataCopy | ( |  | ) | const`[pure virtual]`

Implemented in Ipopt::IndexSchurData.

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.

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.

virtual Index Ipopt::SchurData::SetData_Index | ( | Index | dim,
|  | const Index * | flags,
|  | Number | v = `1.0` |
| ) |  |  | `[pure virtual]`

Implemented in Ipopt::IndexSchurData.

virtual void Ipopt::SchurData::SetData_List | ( | const std::vector< Index > & | list,
|  | Number | v = `1.0` |
| ) |  |  | `[pure virtual]`

Implemented in Ipopt::IndexSchurData.

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.

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 SensSchurData.hpp.

virtual bool Ipopt::SchurData::Is_Initialized | ( |  | ) | const`[inline, virtual]`

Definition at line 62 of file SensSchurData.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.

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.

virtual void Ipopt::SchurData::Multiply | ( | const IteratesVector & | v,
|  | Vector & | u |
| ) |  |  | const`[pure virtual]`

Computes B*v with B in R(mxn).

Implemented in Ipopt::IndexSchurData.

virtual void Ipopt::SchurData::TransMultiply | ( | const Vector & | u,
|  | IteratesVector & | v |
| ) |  |  | const`[pure virtual]`

Computes A*u with A in R(nxm), KKT in R(n,n).

Implemented in Ipopt::IndexSchurData.

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.

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 SensSchurData.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 SensSchurData.hpp.

virtual void Ipopt::SchurData::Set_Initialized | ( |  | ) | `[inline, protected, virtual]`

Definition at line 117 of file SensSchurData.hpp.

virtual void Ipopt::SchurData::Set_NRows | ( | Index | nrows | ) | `[inline, protected, virtual]`

Definition at line 122 of file SensSchurData.hpp.

## Member Data Documentation

bool Ipopt::SchurData::initialized_`[private]`

Makes sure that data is not set twice accidentially.

Definition at line 130 of file SensSchurData.hpp.

Index Ipopt::SchurData::nrows_`[private]`

Number of columns/rows of corresponding Schur Matrix.

Definition at line 133 of file SensSchurData.hpp.

The documentation for this class was generated from the following file:

- contrib/sIPOPT/src/SensSchurData.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines