Ipopt
3.11.8
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
LinAlg
TMatrices
IpSymTMatrix.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpSymTMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPSYMTMATRIX_HPP__
10
#define __IPSYMTMATRIX_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpSymMatrix.hpp
"
14
15
namespace
Ipopt
16
{
17
18
/* forward declarations */
19
class
SymTMatrixSpace;
20
42
class
SymTMatrix
:
public
SymMatrix
43
{
44
public
:
45
48
51
SymTMatrix
(
const
SymTMatrixSpace
* owner_space);
52
54
~SymTMatrix
();
56
64
void
SetValues
(
const
Number
*
Values
);
66
70
Index
Nonzeros
()
const
;
71
76
const
Index
*
Irows
()
const
;
77
82
const
Index
*
Jcols
()
const
;
83
88
Number
*
Values
();
93
const
Number
*
Values
()
const
;
95
99
void
FillStruct
(
ipfint
* Irn,
ipfint
* Jcn)
const
;
100
102
void
FillValues
(
Number
* Values)
const
;
104
105
protected
:
108
virtual
void
MultVectorImpl
(
Number
alpha,
const
Vector
&
x
,
Number
beta,
109
Vector
& y)
const
;
110
113
virtual
bool
HasValidNumbersImpl
()
const
;
114
115
virtual
void
ComputeRowAMaxImpl
(
Vector
& rows_norms,
bool
init)
const
;
116
117
virtual
void
PrintImpl
(
const
Journalist
& jnlst,
118
EJournalLevel
level,
119
EJournalCategory
category,
120
const
std::string& name,
121
Index
indent,
122
const
std::string& prefix)
const
;
124
125
private
:
135
SymTMatrix
();
136
138
SymTMatrix
(
const
SymTMatrix
&);
139
141
void
operator=
(
const
SymTMatrix
&);
143
147
const
SymTMatrixSpace
*
owner_space_
;
148
150
Number
*
values_
;
151
153
bool
initialized_
;
154
155
};
156
161
class
SymTMatrixSpace
:
public
SymMatrixSpace
162
{
163
public
:
174
SymTMatrixSpace
(
Index
dim,
Index
nonZeros,
const
Index
* iRows,
175
const
Index
* jCols);
176
178
~SymTMatrixSpace
();
180
183
virtual
SymMatrix
*
MakeNewSymMatrix
()
const
184
{
185
return
MakeNewSymTMatrix
();
186
}
187
189
SymTMatrix
*
MakeNewSymTMatrix
()
const
190
{
191
return
new
SymTMatrix
(
this
);
192
}
193
197
Index
Nonzeros
()
const
198
{
199
return
nonZeros_
;
200
}
201
203
const
Index
*
Irows
()
const
204
{
205
return
iRows_
;
206
}
207
209
const
Index
*
Jcols
()
const
210
{
211
return
jCols_
;
212
}
214
215
private
:
219
Number
*
AllocateInternalStorage
()
const
;
220
222
void
FreeInternalStorage
(
Number
* values)
const
;
224
225
const
Index
nonZeros_
;
226
Index
*
iRows_
;
227
Index
*
jCols_
;
228
229
friend
class
SymTMatrix
;
230
};
231
232
/* Inline Methods */
233
inline
234
Index
SymTMatrix::Nonzeros
()
const
235
{
236
return
owner_space_
->
Nonzeros
();
237
}
238
239
inline
240
const
Index
*
SymTMatrix::Irows
()
const
241
{
242
return
owner_space_
->
Irows
();
243
}
244
245
inline
246
const
Index
*
SymTMatrix::Jcols
()
const
247
{
248
return
owner_space_
->
Jcols
();
249
}
250
251
252
}
// namespace Ipopt
253
#endif
Generated by
1.8.3.1