summaryrefslogtreecommitdiff
path: root/thirdparty/windows/include/coin/CglParam.hpp
blob: 4463ef578a7a0d359a69abba661ca3af89b1fdfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// Name:     CglParam.hpp
// Author:   Francois Margot
//           Tepper School of Business
//           Carnegie Mellon University, Pittsburgh, PA 15213
//           email: fmargot@andrew.cmu.edu
// Date:     11/24/06
//
// $Id: CglParam.hpp 1122 2013-04-06 20:39:53Z stefan $
//
// This code is licensed under the terms of the Eclipse Public License (EPL).
//-----------------------------------------------------------------------------
// Copyright (C) 2006, Francois Margot and others.  All Rights Reserved.

#ifndef CglParam_H
#define CglParam_H
#include "CglConfig.h"
#include "CoinFinite.hpp"
/** Class collecting parameters for all cut generators. Each generator
    may have a derived class to add parameters. Each generator might
    also set different default values for the parameters in CglParam.  */

class CglParam {

public:

  /**@name Public Set/get methods */
  //@{

  /** Set INFINIT */
  virtual void setINFINIT(const double inf);
  /** Get value of INFINIT */
  inline double getINFINIT() const {return INFINIT;}

  /** Set EPS */
  virtual void setEPS(const double eps);
  /** Get value of EPS */
  inline double getEPS() const {return EPS;}

  /** Set EPS_COEFF */
  virtual void setEPS_COEFF(const double eps_c);
  /** Get value of EPS_COEFF */
  inline double getEPS_COEFF() const {return EPS_COEFF;}

  /** Set MAX_SUPPORT */
  virtual void setMAX_SUPPORT(const int max_s);
  /** Get value of MAX_SUPPORT */
  inline int getMAX_SUPPORT() const {return MAX_SUPPORT;}
  //@}

  /**@name Constructors and destructors */
  //@{
  /// Default constructor 
  CglParam(const double inf = COIN_DBL_MAX, const double eps = 1e-6,
	   const double eps_c = 1e-5, const int max_s = COIN_INT_MAX);
 
  /// Copy constructor 
  CglParam(const CglParam&);

  /// Clone
  virtual CglParam* clone() const;

  /// Assignment operator 
  CglParam& operator=(const CglParam &rhs);

  /// Destructor 
  virtual ~CglParam();
  //@}

protected:

  // Protected member data

  /**@name Protected member data */

  //@{
  // Value for infinity. Default: COIN_DBL_MAX.
  double INFINIT;

  // EPSILON for double comparisons. Default: 1e-6.
  double EPS;

  // Returned cuts do not have coefficients with absolute value smaller 
  // than EPS_COEFF. Default: 1e-5.
  double EPS_COEFF;

  /** Maximum number of non zero coefficients in a generated cut;
      Default: COIN_INT_MAX */ 
  int MAX_SUPPORT; 
  //@}

};

#endif