Scippy

SoPlex

Sequential object-oriented simPlex

spxequilisc.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-2016 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 spxequilisc.h
17  * @brief LP euilibrium scaling.
18  */
19 #ifndef _SPXEQUILISC_H_
20 #define _SPXEQUILISC_H_
21 
22 #include <assert.h>
23 
24 #include "spxdefines.h"
25 #include "spxscaler.h"
26 
27 namespace soplex
28 {
29 /**@brief Equilibrium row/column scaling.
30  @ingroup Algo
31 
32  This SPxScaler implementation performs equilibrium scaling of the
33  LPs rows and columns.
34 */
35 class SPxEquiliSC : public SPxScaler
36 {
37 public:
38 
39  //-------------------------------------
40  /**@name Construction / destruction */
41  //@{
42  /// default constructor (this scaler makes no use of inherited member m_colFirst)
43  explicit SPxEquiliSC(bool doBoth = true);
44  /// copy constructor
45  SPxEquiliSC(const SPxEquiliSC& old);
46  /// assignment operator
48  /// destructor
49  virtual ~SPxEquiliSC()
50  {}
51  /// clone function for polymorphism
52  inline virtual SPxScaler* clone() const
53  {
54  return new SPxEquiliSC(*this);
55  }
56  //@}
57 
58  //-------------------------------------
59  /**@name Scaling */
60  //@{
61  /// Scale the loaded SPxLP.
62  virtual void scale(SPxLP& lp);
63  //@}
64 
65 protected:
66 
67  //-------------------------------------
68  /**@name Protected helpers */
69  //@{
70  /// Does nothing but returning \p maxi.
71  virtual Real computeScale(Real /*mini*/, Real maxi) const;
72  //@}
73 
74 };
75 } // namespace soplex
76 #endif // _SPXEQUILISC_H_
SPxEquiliSC(bool doBoth=true)
default constructor (this scaler makes no use of inherited member m_colFirst)
Definition: spxequilisc.cpp:31
double Real
SOPLEX_DEBUG.
Definition: spxdefines.h:200
virtual ~SPxEquiliSC()
destructor
Definition: spxequilisc.h:49
virtual Real computeScale(Real, Real maxi) const
Does nothing but returning maxi.
Definition: spxequilisc.cpp:49
Debugging, floating point type and parameter definitions.
Everything should be within this namespace.
LP scaling base class.
virtual void scale(SPxLP &lp)
Scale the loaded SPxLP.
Definition: spxequilisc.cpp:55
LP scaler abstract base class.Instances of classes derived from SPxScaler may be loaded to SoPlex in ...
Definition: spxscaler.h:39
SPxEquiliSC & operator=(const SPxEquiliSC &)
assignment operator
Definition: spxequilisc.cpp:39
Equilibrium row/column scaling.This SPxScaler implementation performs equilibrium scaling of the LPs ...
Definition: spxequilisc.h:35
virtual SPxScaler * clone() const
clone function for polymorphism
Definition: spxequilisc.h:52