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
IpTSymLinearSolver.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: IpTSymLinearSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-03-17
8
9
#ifndef __IPTSYMLINEARSOLVER_HPP__
10
#define __IPTSYMLINEATSOLVER_HPP__
11
12
#include "
IpSymLinearSolver.hpp
"
13
#include "
IpSparseSymLinearSolverInterface.hpp
"
14
#include "
IpTSymScalingMethod.hpp
"
15
#include "
IpSymMatrix.hpp
"
16
#include "
IpTripletToCSRConverter.hpp
"
17
#include <vector>
18
#include <list>
19
20
namespace
Ipopt
21
{
22
33
class
TSymLinearSolver
:
public
SymLinearSolver
34
{
35
public
:
42
TSymLinearSolver
(
SmartPtr<SparseSymLinearSolverInterface>
solver_interface,
43
SmartPtr<TSymScalingMethod>
scaling_method);
44
46
virtual
~TSymLinearSolver
();
48
50
bool
InitializeImpl
(
const
OptionsList
& options,
51
const
std::string& prefix);
52
58
virtual
ESymSolverStatus
MultiSolve
(
const
SymMatrix
&A,
59
std::vector<
SmartPtr<const Vector>
>& rhsV,
60
std::vector<
SmartPtr<Vector>
>& solV,
61
bool
check_NegEVals,
62
Index
numberOfNegEVals);
63
68
virtual
Index
NumberOfNegEVals
()
const
;
70
71
//* @name Options of Linear solver */
73
78
virtual
bool
IncreaseQuality
();
79
83
virtual
bool
ProvidesInertia
()
const
;
85
91
bool
ProvidesDegeneracyDetection
()
const
;
96
ESymSolverStatus
DetermineDependentRows
(
Index
n_rows,
Index
n_cols,
97
Index
n_jac_nz,
98
Number
* jac_c_vals,
99
Index
* jac_c_iRow,
100
Index
* jac_c_jCol,
101
std::list<Index>& c_deps);
103
106
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
108
109
private
:
119
TSymLinearSolver
();
120
122
TSymLinearSolver
(
const
TSymLinearSolver
&);
123
125
void
operator=
(
const
TSymLinearSolver
&);
127
131
TaggedObject::Tag
atag_
;
132
134
Index
dim_
;
135
139
Index
nonzeros_triplet_
;
143
Index
nonzeros_compressed_
;
145
150
bool
have_structure_
;
153
bool
linear_scaling_on_demand_
;
156
bool
initialized_
;
158
160
SmartPtr<SparseSymLinearSolverInterface>
solver_interface_
;
165
SmartPtr<TSymScalingMethod>
scaling_method_
;
167
double
*
scaling_factors_
;
169
bool
use_scaling_
;
171
bool
just_switched_on_scaling_
;
173
178
Index
*
airn_
;
181
Index
*
ajcn_
;
185
SmartPtr<TripletToCSRConverter>
triplet_to_csr_converter_
;
187
SparseSymLinearSolverInterface::EMatrixFormat
matrix_format_
;
189
194
bool
warm_start_same_structure_
;
196
203
ESymSolverStatus
InitializeStructure
(
const
SymMatrix
& symT_A);
204
207
void
GiveMatrixToSolver
(
bool
new_matrix,
const
SymMatrix
& sym_A);
209
};
210
211
}
// namespace Ipopt
212
#endif
Generated on Mon Mar 17 2014 19:49:13 by
1.8.1.2