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
IpSymLinearSolver.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpSymLinearSolver.hpp 2332 2013-06-14 14:05:12Z stefan $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPSYMLINEARSOLVER_HPP__
10
#define __IPSYMLINEARSOLVER_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpSymMatrix.hpp
"
14
#include "
IpAlgStrategy.hpp
"
15
#include <vector>
16
17
namespace
Ipopt
18
{
19
21
enum
ESymSolverStatus
{
23
SYMSOLVER_SUCCESS
,
25
SYMSOLVER_SINGULAR
,
27
SYMSOLVER_WRONG_INERTIA
,
30
SYMSOLVER_CALL_AGAIN
,
33
SYMSOLVER_FATAL_ERROR
34
};
35
50
class
SymLinearSolver
:
public
AlgorithmStrategyObject
51
{
52
public
:
55
SymLinearSolver
()
56
{}
57
58
virtual
~SymLinearSolver
()
59
{}
61
63
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
64
const
std::string& prefix) = 0;
65
80
virtual
ESymSolverStatus
MultiSolve
(
const
SymMatrix
&A,
81
std::vector<
SmartPtr<const Vector>
>& rhsV,
82
std::vector<
SmartPtr<Vector>
>& solV,
83
bool
check_NegEVals,
84
Index
numberOfNegEVals)=0;
85
89
ESymSolverStatus
Solve
(
const
SymMatrix
&A,
90
const
Vector
& rhs,
Vector
& sol,
91
bool
check_NegEVals,
92
Index
numberOfNegEVals)
93
{
94
std::vector<SmartPtr<const Vector> > rhsV(1);
95
rhsV[0] = &rhs;
96
std::vector<SmartPtr<Vector> > solV(1);
97
solV[0] = /
98
return
MultiSolve
(A, rhsV, solV, check_NegEVals,
99
numberOfNegEVals);
100
}
101
108
virtual
Index
NumberOfNegEVals
()
const
=0;
110
111
//* @name Options of Linear solver */
113
118
virtual
bool
IncreaseQuality
() =0;
119
123
virtual
bool
ProvidesInertia
()
const
=0;
125
};
126
127
128
}
// namespace Ipopt
129
130
#endif
Generated by
1.8.3.1