Ipopt 3.11.9
Loading...
Searching...
No Matches
IpDiagMatrix.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// $Id: IpDiagMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $
6//
7// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9#ifndef __IPDIAGMATRIX_HPP__
10#define __IPDIAGMATRIX_HPP__
11
12#include "IpUtils.hpp"
13#include "IpSymMatrix.hpp"
14
15namespace Ipopt
16{
17
20 class DiagMatrix : public SymMatrix
21 {
22 public:
23
26
28 DiagMatrix(const SymMatrixSpace* owner_space);
29
33
35 void SetDiag(const Vector& diag)
36 {
37 diag_ = &diag;
38 }
39
42 {
43 return diag_;
44 }
45
46 protected:
49 virtual void MultVectorImpl(Number alpha, const Vector& x,
50 Number beta, Vector& y) const;
51
54 virtual bool HasValidNumbersImpl() const;
55
56 virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const;
57
58 virtual void PrintImpl(const Journalist& jnlst,
59 EJournalLevel level,
60 EJournalCategory category,
61 const std::string& name,
62 Index indent,
63 const std::string& prefix) const;
65
66 private:
77
80
82 void operator=(const DiagMatrix&);
84
87 };
88
91 {
92 public:
97 :
99 {}
100
103 {}
105
109 {
110 return MakeNewDiagMatrix();
111 }
112
115 {
116 return new DiagMatrix(this);
117 }
118
119 private:
130
133
137
138 };
139
140} // namespace Ipopt
141#endif
Number * x
Input: Starting point Output: Optimal solution.
This is the matrix space for DiagMatrix.
DiagMatrix * MakeNewDiagMatrix() const
Method for creating a new matrix of this specific type.
DiagMatrixSpace(Index dim)
Constructor, given the dimension of the matrix.
DiagMatrixSpace(const DiagMatrixSpace &)
Copy Constructor.
DiagMatrixSpace()
Default Constructor.
void operator=(const DiagMatrixSpace &)
Overloaded Equals Operator.
virtual ~DiagMatrixSpace()
Destructor.
virtual SymMatrix * MakeNewSymMatrix() const
Overloaded MakeNew method for the SymMatrixSpace base class.
Class for diagonal matrices.
DiagMatrix()
Default Constructor.
SmartPtr< const Vector > GetDiag() const
Method for setting the diagonal elements.
virtual void PrintImpl(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const
Print detailed information about the matrix.
DiagMatrix(const SymMatrixSpace *owner_space)
Constructor, given the corresponding matrix space.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
void operator=(const DiagMatrix &)
Overloaded Equals Operator.
~DiagMatrix()
Destructor.
void SetDiag(const Vector &diag)
Method for setting the diagonal elements (as a Vector).
SmartPtr< const Vector > diag_
Vector storing the diagonal elements.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
DiagMatrix(const DiagMatrix &)
Copy Constructor.
Class responsible for all message output.
Template class for Smart Pointers.
SymMatrixSpace base class, corresponding to the SymMatrix base class.
This is the base class for all derived symmetric matrix types.
Vector Base Class.
Definition IpVector.hpp:48
EJournalCategory
Category Selection Enum.
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
EJournalLevel
Print Level Enum.
double Number
Type of all numbers.
Definition IpTypes.hpp:17