Ipopt
3.11.8
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
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 by
1.8.3.1