Main Page
Namespaces
Classes
Files
File List
File Members
var
build
temp
tmp.niCloInx4p
4.0-0-0
coinor-ipopt
coinor-ipopt-3.10.2
Ipopt
src
LinAlg
IpDenseSymMatrix.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2008 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpDenseSymMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Andreas Waechter IBM 2005-12-25
8
9
#ifndef __IPDENSESYMMATRIX_HPP__
10
#define __IPDENSESYMMATRIX_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpSymMatrix.hpp
"
14
#include "
IpMultiVectorMatrix.hpp
"
15
#include "
IpDenseVector.hpp
"
16
17
namespace
Ipopt
18
{
19
21
class
DenseSymMatrixSpace;
22
25
class
DenseGenMatrix;
26
31
class
DenseSymMatrix
:
public
SymMatrix
32
{
33
public
:
34
37
40
DenseSymMatrix
(
const
DenseSymMatrixSpace
* owner_space);
41
43
~DenseSymMatrix
();
45
47
SmartPtr<DenseSymMatrix>
MakeNewDenseSymMatrix
()
const
;
48
53
Number
*
Values
()
54
{
55
ObjectChanged
();
56
initialized_
=
true
;
57
return
values_
;
58
}
59
63
const
Number
*
Values
()
const
64
{
65
DBG_ASSERT
(
initialized_
);
66
return
values_
;
67
}
68
70
void
FillIdentity
(
Number
factor=1.);
71
74
void
AddMatrix
(
Number
alpha,
const
DenseSymMatrix
& A,
Number
beta);
75
79
void
HighRankUpdate
(
bool
trans,
Number
alpha,
const
DenseGenMatrix
& V,
80
Number
beta);
81
85
void
HighRankUpdateTranspose
(
Number
alpha,
86
const
MultiVectorMatrix
& V1,
87
const
MultiVectorMatrix
& V2,
88
Number
beta);
89
95
void
SpecialAddForLMSR1
(
const
DenseVector
& D,
const
DenseGenMatrix
& L);
96
97
protected
:
100
virtual
void
MultVectorImpl
(
Number
alpha,
const
Vector
&
x
,
Number
beta,
101
Vector
&y)
const
;
102
105
virtual
bool
HasValidNumbersImpl
()
const
;
106
107
virtual
void
ComputeRowAMaxImpl
(
Vector
& rows_norms,
bool
init)
const
;
108
109
virtual
void
PrintImpl
(
const
Journalist
& jnlst,
110
EJournalLevel
level,
111
EJournalCategory
category,
112
const
std::string& name,
113
Index
indent,
114
const
std::string& prefix)
const
;
116
117
118
private
:
128
DenseSymMatrix
();
129
131
DenseSymMatrix
(
const
DenseSymMatrix
&);
132
134
void
operator=
(
const
DenseSymMatrix
&);
136
137
const
DenseSymMatrixSpace
*
owner_space_
;
138
141
Number
*
values_
;
142
144
bool
initialized_
;
145
};
146
149
class
DenseSymMatrixSpace
:
public
SymMatrixSpace
150
{
151
public
:
157
DenseSymMatrixSpace
(
Index
nDim);
158
160
~DenseSymMatrixSpace
()
161
{}
163
165
DenseSymMatrix
*
MakeNewDenseSymMatrix
()
const
166
{
167
return
new
DenseSymMatrix
(
this
);
168
}
169
172
virtual
SymMatrix
*
MakeNewSymMatrix
()
const
173
{
174
return
MakeNewDenseSymMatrix
();
175
}
176
177
};
178
179
inline
180
SmartPtr<DenseSymMatrix>
DenseSymMatrix::MakeNewDenseSymMatrix
()
const
181
{
182
return
owner_space_
->
MakeNewDenseSymMatrix
();
183
}
184
185
}
// namespace Ipopt
186
#endif
Generated on Mon Mar 17 2014 19:49:13 by
1.8.1.2