Toggle navigation
SCIP Optimization Suite
SCIP
SoPlex
ZIMPL
UG
GCG
Documentation
SoPlex 6.0.3
SoPlex 5.0.2
SoPlex 4.0.2
SoPlex 3.1.0
SoPlex 3.0.1
SoPlex 2.2.1
SoPlex
Sequential object-oriented simPlex
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
soplex-repo
src
spxgeometsc.h
Go to the documentation of this file.
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2
/* */
3
/* This file is part of the class library */
4
/* SoPlex --- the Sequential object-oriented simPlex. */
5
/* */
6
/* Copyright (C) 1996-2015 Konrad-Zuse-Zentrum */
7
/* fuer Informationstechnik Berlin */
8
/* */
9
/* SoPlex is distributed under the terms of the ZIB Academic Licence. */
10
/* */
11
/* You should have received a copy of the ZIB Academic License */
12
/* along with SoPlex; see the file COPYING. If not email to soplex@zib.de. */
13
/* */
14
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16
/**@file spxgeometsc.h
17
* @brief LP geometric mean scaling.
18
*/
19
#ifndef _SPXGEOMETSC_H_
20
#define _SPXGEOMETSC_H_
21
22
#include <assert.h>
23
24
#include "
spxdefines.h
"
25
#include "
spxscaler.h
"
26
27
namespace
soplex
28
{
29
/**@brief Geometric mean row/column scaling.
30
@ingroup Algo
31
32
This SPxScaler implementation performs geometric mean scaling of the
33
LPs rows and columns.
34
*/
35
class
SPxGeometSC
:
public
SPxScaler
36
{
37
protected
:
38
39
//-------------------------------------
40
/**@name Data */
41
//@{
42
const
int
m_maxIterations
;
///< maximum number of scaling iterations.
43
const
Real
m_minImprovement
;
///< improvement nesseccary to carry on.
44
const
Real
m_goodEnoughRatio
;
///< no scaling needed if ratio is less than this.
45
//@}
46
47
//-------------------------------------
48
/**@name Private helpers */
49
//@{
50
/// Returns \f$\sqrt{\mbox{mini}\cdot\mbox{maxi}}\f$.
51
virtual
Real
computeScale
(
Real
mini,
Real
maxi)
const
;
52
//@}
53
54
public
:
55
56
//-------------------------------------
57
/**@name Construction / destruction */
58
//@{
59
/// default constructor (this scaler makes no use of inherited members m_colFirst and m_doBoth)
60
explicit
SPxGeometSC
(
int
maxIters = 8,
Real
minImpr = 0.85,
Real
goodEnough = 1e3);
61
/// copy constructor
62
SPxGeometSC
(
const
SPxGeometSC
& old);
63
/// assignment operator
64
SPxGeometSC
&
operator=
(
const
SPxGeometSC
& );
65
/// destructor
66
virtual
~SPxGeometSC
()
67
{}
68
/// clone function for polymorphism
69
inline
virtual
SPxScaler
*
clone
()
const
70
{
71
return
new
SPxGeometSC
(*
this
);
72
}
73
//@}
74
75
//-------------------------------------
76
/**@name Scaling */
77
//@{
78
/// Scale the loaded SPxLP.
79
virtual
void
scale
(
SPxLP
& lp);
80
//@}
81
82
};
83
}
// namespace soplex
84
#endif // _SPXGEOMETSC_H_