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
IpMa77SolverInterface.hpp
Go to the documentation of this file.
1
// Copyright (C) 2009, Jonathan Hogg <jdh41.at.cantab.net>
2
// Copyright (C) 2004, 2007 International Business Machines and others.
3
// All Rights Reserved.
4
// This code is published under the Eclipse Public License.
5
//
6
// $Id: IpMa77SolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
7
//
8
// Authors: Jonathan Hogg 2009-07-29
9
// Carl Laird, Andreas Waechter IBM 2004-03-17
10
11
#ifndef __IPMA77SOLVERINTERFACE_HPP__
12
#define __IPMA77SOLVERINTERFACE_HPP__
13
14
#include "
IpSparseSymLinearSolverInterface.hpp
"
15
16
namespace
Ipopt
17
{
18
98
class
Ma77SolverInterface
:
public
SparseSymLinearSolverInterface
99
{
100
private
:
101
int
ndim_
;
// Number of dimensions
102
double
*
val_
;
// Storage for variables
103
int
numneg_
;
// Number of negative pivots in last factorization
104
105
/* Options */
106
int
icntl_
[8];
107
double
rcntl_
[3];
108
int
ma77_print_level_
;
109
int
ma77_buffer_lpage_
;
110
int
ma77_buffer_npage_
;
111
int
ma77_file_size_
;
112
int
ma77_maxstore_
;
113
int
ma77_nemin_
;
114
double
ma77_small_
;
115
double
ma77_static_
;
116
double
ma77_u_
;
117
118
public
:
119
120
Ma77SolverInterface
() :
val_
(NULL) {}
121
~Ma77SolverInterface
();
122
123
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
124
125
bool
InitializeImpl
(
const
OptionsList
& options,
126
const
std::string& prefix);
127
136
ESymSolverStatus
InitializeStructure
(
Index
dim,
Index
nonzeros,
137
const
Index
* ia,
138
const
Index
* ja);
139
146
double
*
GetValuesArrayPtr
() {
return
val_
; }
147
180
ESymSolverStatus
MultiSolve
(
bool
new_matrix,
181
const
Index
* ia,
182
const
Index
* ja,
183
Index
nrhs,
184
double
* rhs_vals,
185
bool
check_NegEVals,
186
Index
numberOfNegEVals);
187
194
Index
NumberOfNegEVals
()
const
{
return
numneg_
; }
196
197
//* @name Options of Linear solver */
199
205
bool
IncreaseQuality
() {
return
false
; }
206
210
bool
ProvidesInertia
()
const
{
return
true
; }
211
215
EMatrixFormat
MatrixFormat
()
const
{
return
CSR_Full_Format_1_Offset
; }
217
223
bool
ProvidesDegeneracyDetection
()
const
{
return
false
; }
226
ESymSolverStatus
DetermineDependentRows
(
const
Index
* ia,
227
const
Index
* ja,
228
std::list<Index>& c_deps) {
return
SYMSOLVER_FATAL_ERROR
; }
229
231
static
void
MetisOrder
(
const
int
dim,
const
Index
*ptr,
const
Index
*row,
Index
*perm);
232
};
233
234
}
// namespace Ipopt
235
236
#endif
Generated on Mon Mar 17 2014 19:49:13 by
1.8.1.2