Main Page
Namespaces
Classes
Files
File List
File Members
build
buildd
coinor-ipopt-3.10.2
Ipopt
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 Fri Jun 29 2012 06:35:13 by
1.8.1.1