Ipopt Documentation  
IpIdentityMatrix.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
6 
7 #ifndef __IPIDENTITYMATRIX_HPP__
8 #define __IPIDENTITYMATRIX_HPP__
9 
10 #include "IpUtils.hpp"
11 #include "IpSymMatrix.hpp"
12 
13 namespace Ipopt
14 {
15 
18 {
19 public:
21 
26  const SymMatrixSpace* owner_space
27  );
28 
30  ~IdentityMatrix();
32 
34  void SetFactor(
35  Number factor
36  )
37  {
38  factor_ = factor;
39  }
40 
42  Number GetFactor() const
43  {
44  return factor_;
45  }
46 
48  Index Dim() const;
49 
50 protected:
52  virtual void MultVectorImpl(
54  Number alpha,
55  const Vector& x,
56  Number beta,
57  Vector& y
58  ) const;
59 
60  virtual void AddMSinvZImpl(
61  Number alpha,
62  const Vector& S,
63  const Vector& Z,
64  Vector& X
65  ) const;
66 
67  virtual bool HasValidNumbersImpl() const;
68 
69  virtual void ComputeRowAMaxImpl(
70  Vector& rows_norms,
71  bool init
72  ) const;
73 
74  virtual void PrintImpl(
75  const Journalist& jnlst,
76  EJournalLevel level,
77  EJournalCategory category,
78  const std::string& name,
79  Index indent,
80  const std::string& prefix
81  ) const;
83 
84 private:
93 
96 
99  const IdentityMatrix&
100  );
101 
103  void operator=(
104  const IdentityMatrix&
105  );
107 
110 };
111 
114 {
115 public:
117 
120  Index dim
121  )
122  : SymMatrixSpace(dim)
123  { }
124 
127  { }
129 
130  virtual SymMatrix* MakeNewSymMatrix() const
131  {
132  return MakeNewIdentityMatrix();
133  }
134 
137  {
138  return new IdentityMatrix(this);
139  }
140 
141 private:
150 
153 
156  const IdentityMatrixSpace&
157  );
158 
160  void operator=(
161  const IdentityMatrixSpace&
162  );
164 };
165 
166 } // namespace Ipopt
167 #endif
Number GetFactor() const
Method for getting the factor for the identity matrix.
Number factor_
Scaling factor for this identity matrix.
#define IPOPTLIB_EXPORT
Definition: config.h:94
Vector Base Class.
Definition: IpVector.hpp:47
virtual SymMatrix * MakeNewSymMatrix() const
Pure virtual method for creating a new matrix of this specific type.
EJournalLevel
Print Level Enum.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:20
This file contains a base class for all exceptions and a set of macros to help with exceptions...
This is the base class for all derived symmetric matrix types.
Definition: IpSymMatrix.hpp:20
This is the matrix space for IdentityMatrix.
Class for Matrices which are multiples of the identity matrix.
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17
void SetFactor(Number factor)
Method for setting the factor for the identity matrix.
virtual ~IdentityMatrixSpace()
Destructor.
IdentityMatrix * MakeNewIdentityMatrix() const
Method for creating a new matrix of this specific type.
SymMatrixSpace base class, corresponding to the SymMatrix base class.
Definition: IpSymMatrix.hpp:85
Class responsible for all message output.
IdentityMatrixSpace(Index dim)
Constructor, given the dimension of the matrix.
EJournalCategory
Category Selection Enum.