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
Algorithm
LinearSolvers
IpWsmpSolverInterface.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2010 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpWsmpSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2005-03-17
8
9
10
#ifndef __IPWSMPSOLVERINTERFACE_HPP__
11
#define __IPWSMPSOLVERINTERFACE_HPP__
12
13
#include "
IpSparseSymLinearSolverInterface.hpp
"
14
15
//#define PARDISO_MATCHING_PREPROCESS
16
17
namespace
Ipopt
18
{
19
24
class
WsmpSolverInterface
:
public
SparseSymLinearSolverInterface
25
{
26
public
:
30
WsmpSolverInterface
();
31
33
virtual
~WsmpSolverInterface
();
35
37
bool
InitializeImpl
(
const
OptionsList
& options,
38
const
std::string& prefix);
39
40
44
virtual
ESymSolverStatus
InitializeStructure
(
Index
dim,
Index
nonzeros,
45
const
Index
*ia,
46
const
Index
*ja);
47
50
virtual
double
*
GetValuesArrayPtr
();
51
53
virtual
ESymSolverStatus
MultiSolve
(
bool
new_matrix,
54
const
Index
* ia,
55
const
Index
* ja,
56
Index
nrhs,
57
double
* rhs_vals,
58
bool
check_NegEVals,
59
Index
numberOfNegEVals);
60
64
virtual
Index
NumberOfNegEVals
()
const
;
66
67
//* @name Options of Linear solver */
69
71
virtual
bool
IncreaseQuality
();
72
76
virtual
bool
ProvidesInertia
()
const
77
{
78
return
true
;
79
}
83
EMatrixFormat
MatrixFormat
()
const
84
{
85
return
CSR_Format_1_Offset
;
86
}
88
91
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
93
96
virtual
bool
ProvidesDegeneracyDetection
()
const
;
97
100
virtual
ESymSolverStatus
DetermineDependentRows
(
const
Index
* ia,
101
const
Index
* ja,
102
std::list<Index>& c_deps);
103
104
private
:
114
WsmpSolverInterface
(
const
WsmpSolverInterface
&);
115
117
void
operator=
(
const
WsmpSolverInterface
&);
119
123
Index
dim_
;
124
126
Index
nonzeros_
;
127
129
double
*
a_
;
130
131
#ifdef PARDISO_MATCHING_PREPROCESS
132
135
ipfint
* ia2;
136
ipfint
* ja2;
137
double
* a2_;
138
ipfint
* perm2;
139
double
* scale2;
141
142
#endif
143
145
149
Index
wsmp_num_threads_
;
151
Number
wsmp_pivtol_
;
153
Number
wsmp_pivtolmax_
;
155
Index
wsmp_scaling_
;
158
Number
wsmp_singularity_threshold_
;
160
Index
wsmp_write_matrix_iteration_
;
163
bool
skip_inertia_check_
;
166
bool
wsmp_no_pivoting_
;
168
170
Index
matrix_file_number_
;
171
175
Index
negevals_
;
177
182
bool
initialized_
;
185
bool
printed_num_threads_
;
189
bool
pivtol_changed_
;
192
bool
have_symbolic_factorization_
;
195
Index
factorizations_since_recomputed_ordering_
;
197
201
ipfint
*
IPARM_
;
203
double
*
DPARM_
;
205
ipfint
*
PERM_
;
207
ipfint
*
INVP_
;
209
ipfint
*
MRP_
;
211
216
ESymSolverStatus
SymbolicFactorization
(
const
Index
* ia,
const
Index
* ja);
217
219
ESymSolverStatus
InternalSymFact
(
const
Index
* ia,
const
Index
* ja,
220
Index
numberOfNegEVals);
221
224
ESymSolverStatus
Factorization
(
const
Index
* ia,
225
const
Index
* ja,
226
bool
check_NegEVals,
227
Index
numberOfNegEVals);
228
231
ESymSolverStatus
Solve
(
const
Index
* ia,
232
const
Index
* ja,
233
Index
nrhs,
234
double
*rhs_vals);
236
};
237
238
}
// namespace Ipopt
239
#endif
Generated on Mon Mar 17 2014 19:49:13 by
1.8.1.2