Clp
1.17.11
Toggle main menu visibility
Loading...
Searching...
No Matches
Clp
src
ClpDualRowPivot.hpp
Go to the documentation of this file.
1
/* $Id$ */
2
// Copyright (C) 2002, International Business Machines
3
// Corporation and others. All Rights Reserved.
4
// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6
#ifndef ClpDualRowPivot_H
7
#define ClpDualRowPivot_H
8
9
class
ClpSimplex
;
10
class
CoinIndexedVector;
11
12
//#############################################################################
13
21
22
class
ClpDualRowPivot
{
23
24
public
:
26
27
29
virtual
int
pivotRow
() = 0;
30
33
virtual
double
updateWeights
(CoinIndexedVector *input,
34
CoinIndexedVector *spare,
35
CoinIndexedVector *spare2,
36
CoinIndexedVector *updatedColumn)
37
= 0;
38
45
/* FIXME: this was pure virtul (=0). Why? */
46
virtual
void
updatePrimalSolution
(CoinIndexedVector *input,
47
double
theta,
48
double
&changeInObjective)
49
= 0;
62
virtual
void
saveWeights
(
ClpSimplex
*
model
,
int
mode);
64
virtual
void
checkAccuracy
();
66
virtual
void
unrollWeights
();
68
virtual
void
clearArrays
();
70
virtual
bool
looksOptimal
()
const
71
{
72
return
false
;
73
}
74
75
virtual
void
maximumPivotsChanged
() {}
77
79
80
81
ClpDualRowPivot
();
82
84
ClpDualRowPivot
(
const
ClpDualRowPivot
&);
85
87
ClpDualRowPivot
&
operator=
(
const
ClpDualRowPivot
&rhs);
88
90
virtual
~ClpDualRowPivot
();
91
93
virtual
ClpDualRowPivot
*
clone
(
bool
copyData =
true
)
const
= 0;
94
96
98
99
100
inline
ClpSimplex
*
model
()
101
{
102
return
model_
;
103
}
104
106
inline
void
setModel
(
ClpSimplex
*newmodel)
107
{
108
model_
= newmodel;
109
}
110
112
inline
int
type
()
113
{
114
return
type_
;
115
}
116
118
119
//---------------------------------------------------------------------------
120
121
protected
:
123
124
125
ClpSimplex
*
model_
;
127
int
type_
;
129
};
130
#ifndef CLP_DUAL_COLUMN_MULTIPLIER
131
//#define CLP_DUAL_COLUMN_MULTIPLIER 0.99999
132
#endif
133
#endif
134
135
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
136
*/
ClpDualRowPivot::ClpDualRowPivot
ClpDualRowPivot(const ClpDualRowPivot &)
Copy constructor.
ClpDualRowPivot::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const =0
Clone.
ClpDualRowPivot::setModel
void setModel(ClpSimplex *newmodel)
Sets model (normally to NULL).
Definition
ClpDualRowPivot.hpp:106
ClpDualRowPivot::type
int type()
Returns type (above 63 is extra information).
Definition
ClpDualRowPivot.hpp:112
ClpDualRowPivot::maximumPivotsChanged
virtual void maximumPivotsChanged()
Called when maximum pivots changes.
Definition
ClpDualRowPivot.hpp:75
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition
ClpDualRowPivot.hpp:100
ClpDualRowPivot::type_
int type_
Type of row pivot algorithm.
Definition
ClpDualRowPivot.hpp:127
ClpDualRowPivot::looksOptimal
virtual bool looksOptimal() const
Returns true if would not find any row.
Definition
ClpDualRowPivot.hpp:70
ClpDualRowPivot::model_
ClpSimplex * model_
Pointer to model.
Definition
ClpDualRowPivot.hpp:125
ClpDualRowPivot::clearArrays
virtual void clearArrays()
Gets rid of all arrays (may be empty).
ClpDualRowPivot::operator=
ClpDualRowPivot & operator=(const ClpDualRowPivot &rhs)
Assignment operator.
ClpDualRowPivot::ClpDualRowPivot
ClpDualRowPivot()
Default Constructor.
ClpDualRowPivot::unrollWeights
virtual void unrollWeights()
Gets rid of last update (may be empty).
ClpDualRowPivot::updatePrimalSolution
virtual void updatePrimalSolution(CoinIndexedVector *input, double theta, double &changeInObjective)=0
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes ch...
ClpDualRowPivot::checkAccuracy
virtual void checkAccuracy()
checks accuracy and may re-initialize (may be empty)
ClpDualRowPivot::updateWeights
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)=0
Updates weights and returns pivot alpha.
ClpDualRowPivot::pivotRow
virtual int pivotRow()=0
Returns pivot row, -1 if none.
ClpDualRowPivot::~ClpDualRowPivot
virtual ~ClpDualRowPivot()
Destructor.
ClpDualRowPivot::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (wi...
ClpSimplex
This solves LPs using the simplex method.
Definition
ClpSimplex.hpp:106
Generated by
1.17.0