Ipopt
3.11.4
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
src
LinAlg
IpSumSymMatrix.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: IpSumSymMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPSUMSYMMATRIX_HPP__
10
#define __IPSUMSYMMATRIX_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpSymMatrix.hpp
"
14
15
namespace
Ipopt
16
{
17
18
/* forward declarations */
19
class
SumSymMatrixSpace;
20
24
class
SumSymMatrix
:
public
SymMatrix
25
{
26
public
:
27
30
34
SumSymMatrix
(
const
SumSymMatrixSpace
* owner_space);
35
37
~SumSymMatrix
();
39
42
void
SetTerm
(
Index
iterm,
Number
factor,
const
SymMatrix
& matrix);
43
46
void
GetTerm
(
Index
iterm,
Number
& factor,
SmartPtr<const SymMatrix>
& matrix)
const
;
47
49
Index
NTerms
()
const
;
50
51
protected
:
54
virtual
void
MultVectorImpl
(
Number
alpha,
const
Vector
&
x
,
55
Number
beta,
Vector
& y)
const
;
56
59
virtual
bool
HasValidNumbersImpl
()
const
;
60
61
virtual
void
ComputeRowAMaxImpl
(
Vector
& rows_norms,
bool
init)
const
;
62
63
virtual
void
ComputeColAMaxImpl
(
Vector
& cols_norms,
bool
init)
const
;
64
65
virtual
void
PrintImpl
(
const
Journalist
& jnlst,
66
EJournalLevel
level,
67
EJournalCategory
category,
68
const
std::string& name,
69
Index
indent,
70
const
std::string& prefix)
const
;
72
73
private
:
83
SumSymMatrix
();
84
86
SumSymMatrix
(
const
SumSymMatrix
&);
87
89
void
operator=
(
const
SumSymMatrix
&);
91
93
std::vector<Number>
factors_
;
94
96
std::vector<SmartPtr<const SymMatrix> >
matrices_
;
97
99
const
SumSymMatrixSpace
*
owner_space_
;
100
};
101
103
class
SumSymMatrixSpace
:
public
SymMatrixSpace
104
{
105
public
:
110
SumSymMatrixSpace
(
Index
ndim,
Index
nterms)
111
:
112
SymMatrixSpace
(ndim),
113
nterms_
(nterms)
114
{}
115
117
~SumSymMatrixSpace
()
118
{}
120
124
Index
NTerms
()
const
125
{
126
return
nterms_
;
127
}
129
133
void
SetTermSpace
(
Index
term_idx,
const
SymMatrixSpace
& space);
134
136
SmartPtr<const SymMatrixSpace>
GetTermSpace
(
Index
term_idx)
const
;
137
139
SumSymMatrix
*
MakeNewSumSymMatrix
()
const
;
140
143
virtual
SymMatrix
*
MakeNewSymMatrix
()
const
;
144
145
private
:
146
Index
nterms_
;
147
148
std::vector< SmartPtr<const SymMatrixSpace> >
term_spaces_
;
149
};
150
151
}
// namespace Ipopt
152
#endif
Generated on Mon Oct 21 2013 19:08:15 for Ipopt by
1.8.4