Ipopt  3.12.12
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SensIndexPCalculator.hpp
Go to the documentation of this file.
1 // Copyright 2009, 2011 Hans Pirnay
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Date : 2009-05-06
6 
7 #ifndef __ASINDEXPCALCULATOR_HPP__
8 #define __ASINDEXPCALCULATOR_HPP__
9 
10 #include "SensPCalculator.hpp"
11 
12 namespace Ipopt
13 {
14  /* Forward declarations */
15  class PColumn;
16 
18  {
22  public:
23 
25  SmartPtr<SchurData> A_data);
26 
27  virtual ~IndexPCalculator();
28 
30  virtual bool InitializeImpl(const OptionsList& options,
31  const std::string& prefix);
32 
33  virtual bool ComputeP();
34 
36 
37  virtual void PrintImpl(const Journalist& jnlst,
38  EJournalLevel level,
39  EJournalCategory category,
40  const std::string& name,
41  Index indent,
42  const std::string& prefix) const;
43 
44  private:
45 
48 
51 
52  std::map< Index, SmartPtr<PColumn> > cols_;
53 
54  };
55 
56  class PColumn : public ReferencedObject
57  {
61  public:
62  PColumn(Index nrows, Number* values);
63 
64  virtual ~PColumn();
65 
66  virtual void GetSchurMatrixRows(const std::vector<Index>* row_idx_B, Number* S) const;
67 
68  virtual const Number* Values() const;
69 
70  private:
71 
74  };
75 
76 }
77 
78 #endif
std::map< Index, SmartPtr< PColumn > > cols_
virtual ~PColumn()
virtual void PrintImpl(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const
virtual const Number * Values() const
virtual void GetSchurMatrixRows(const std::vector< Index > *row_idx_B, Number *S) const
virtual bool GetSchurMatrix(const SmartPtr< const SchurData > &B, SmartPtr< Matrix > &S)
Function to extract a SchurMatrix corresponding to $B K^{-1} A$.
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
PColumn(Index nrows, Number *values)
This class provides an easy interface for PCalculators with data where columns are not necessarily in...
EJournalLevel
Print Level Enum.
Index nrows_
Rows of P = Rows of KKT.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
ReferencedObject class.
This class stores a list of user set options.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Overloaded from PCalculator.
Class responsible for all message output.
virtual bool ComputeP()
Function to start the computation of P from E_0 and KKT.
IndexPCalculator(SmartPtr< SensBacksolver > backsolver, SmartPtr< SchurData > A_data)
This class is the implementation of the PCalculator that corresponds to IndexSchurData.
EJournalCategory
Category Selection Enum.