Main Page
Namespaces
Classes
Files
File List
File Members
build
buildd
coinor-ipopt-3.10.2
Ipopt
src
Algorithm
LinearSolvers
IpSparseSymLinearSolverInterface.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2007 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpSparseSymLinearSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-03-17
8
9
#ifndef __IPSPARSESYMLINEARSOLVERINTERFACE_HPP__
10
#define __IPSPARSESYMLINEARSOLVERINTERFACE_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpAlgStrategy.hpp
"
14
#include "
IpSymLinearSolver.hpp
"
15
16
namespace
Ipopt
17
{
18
98
class
SparseSymLinearSolverInterface
:
public
AlgorithmStrategyObject
99
{
100
public
:
102
enum
EMatrixFormat
{
104
Triplet_Format
,
107
CSR_Format_0_Offset
,
110
CSR_Format_1_Offset
,
113
CSR_Full_Format_0_Offset
,
116
CSR_Full_Format_1_Offset
117
};
120
SparseSymLinearSolverInterface
()
121
{}
122
123
virtual
~SparseSymLinearSolverInterface
()
124
{}
126
128
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
129
const
std::string& prefix) = 0;
130
139
virtual
ESymSolverStatus
InitializeStructure
(
Index
dim,
Index
nonzeros,
140
const
Index
* ia,
141
const
Index
* ja) = 0;
142
149
virtual
double
*
GetValuesArrayPtr
() = 0;
150
183
virtual
ESymSolverStatus
MultiSolve
(
bool
new_matrix,
184
const
Index
* ia,
185
const
Index
* ja,
186
Index
nrhs,
187
double
* rhs_vals,
188
bool
check_NegEVals,
189
Index
numberOfNegEVals)=0;
190
197
virtual
Index
NumberOfNegEVals
()
const
=0;
199
200
//* @name Options of Linear solver */
202
208
virtual
bool
IncreaseQuality
() =0;
209
213
virtual
bool
ProvidesInertia
()
const
=0;
214
218
virtual
EMatrixFormat
MatrixFormat
()
const
=0;
220
226
virtual
bool
ProvidesDegeneracyDetection
()
const
227
{
228
return
false
;
229
}
232
virtual
ESymSolverStatus
DetermineDependentRows
(
const
Index
* ia,
233
const
Index
* ja,
234
std::list<Index>& c_deps)
235
{
236
return
SYMSOLVER_FATAL_ERROR
;
237
}
238
};
239
240
}
// namespace Ipopt
241
242
#endif
Generated on Fri Jun 29 2012 06:35:13 by
1.8.1.1