Main Page
Namespaces
Classes
Files
File List
File Members
tmp
buildd
coinor-ipopt-3.10.2
Ipopt
src
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 on Tue Jun 26 2012 17:01:44 by
1.8.1.1