Couenne  0.5.8
CouenneTypes.hpp
Go to the documentation of this file.
1 /* $Id: CouenneTypes.hpp 940 2013-01-13 19:49:02Z pbelotti $
2  *
3  * Name: CouenneTypes.hpp
4  * Author: Pietro Belotti
5  * Purpose: define number types used throughout the code
6  *
7  * (C) Carnegie-Mellon University, 2006-07
8  * This file is licensed under the Eclipse Public License (EPL)
9  */
10 
11 #ifndef COUENNE_TYPES_H
12 #define COUENNE_TYPES_H
13 
15 #include "CoinPragma.hpp"
16 
17 namespace Couenne {
18 
21 
24 
30 enum pos {PRE=0, POST, INSIDE, NONE};
31 
34 
38 
40 enum expr_type {/*COU_EXPRAUX, COU_EXPRCLONE, COU_EXPRCOPY, */
41  COU_EXPRESSION, /***** variables, constants **************/
43  /*COU_EXPRIVAR, */
44  COU_EXPROP, /***** n-ary operators *******************/
47  /*COU_EXPRBDIV, COU_EXPRBMUL,*/
48  COU_EXPRUNARY, /***** unary operators *******************/
53  };
54 
57 
60 
63 
67 {
68 public:
69  enum ChangeStatus {
73  };
74 
76  lower_(UNCHANGED),
77  upper_(UNCHANGED)
78  {}
80  lower_(src.lower_),
81  upper_(src.upper_)
82  {}
83  inline const char& lower() const {return lower_;}
84  inline const char& upper() const {return upper_;}
85  inline void setLower(ChangeStatus lower) {lower_ = lower;}
86  inline void setUpper(ChangeStatus upper) {upper_ = upper;}
87  inline void setLowerBits(char lower) {lower_ |= lower;}
88  inline void setUpperBits(char upper) {upper_ |= upper;}
90  lower_ = src.lower_;
91  upper_ = src.upper_;
92  return *this;
93  }
94 private:
95  char lower_;
96  char upper_;
97 };
98 
100 typedef double CouNumber;
101 
104 
105 }
106 
107 #endif
Couenne::t_chg_bounds
status of lower/upper bound of a variable, to be checked/modified in bound tightening
Definition: CouenneTypes.hpp:66
Couenne::unary_function
CouNumber(* unary_function)(CouNumber)
unary function, used in all exprUnary
Definition: CouenneTypes.hpp:103
Couenne::MAX_COU_EXPR_CODE
@ MAX_COU_EXPR_CODE
Definition: CouenneTypes.hpp:52
Couenne::QUADRATIC
@ QUADRATIC
Definition: CouenneTypes.hpp:23
Couenne::POST
@ POST
Definition: CouenneTypes.hpp:30
Couenne::COU_EXPRSUM
@ COU_EXPRSUM
Definition: CouenneTypes.hpp:45
Couenne::MON_ZERO
@ MON_ZERO
Definition: CouenneTypes.hpp:59
Couenne::COUENNE_LE
@ COUENNE_LE
Definition: CouenneTypes.hpp:33
CoinPragma.hpp
Couenne::VAR
@ VAR
Definition: CouenneTypes.hpp:20
Couenne::AROUND_CURPOINT
@ AROUND_CURPOINT
Definition: CouenneTypes.hpp:37
Couenne::COU_EXPROPP
@ COU_EXPROPP
Definition: CouenneTypes.hpp:51
Couenne::expr_type
expr_type
code returned by the method expression::code()
Definition: CouenneTypes.hpp:40
Couenne::t_chg_bounds::t_chg_bounds
t_chg_bounds(const t_chg_bounds &src)
Definition: CouenneTypes.hpp:79
Couenne::UNARY
@ UNARY
Definition: CouenneTypes.hpp:20
Couenne::t_chg_bounds::ChangeStatus
ChangeStatus
Definition: CouenneTypes.hpp:69
Couenne::COU_EXPREXP
@ COU_EXPREXP
Definition: CouenneTypes.hpp:50
Couenne::COUENNE_GE
@ COUENNE_GE
Definition: CouenneTypes.hpp:33
Couenne::COU_EXPROP
@ COU_EXPROP
Definition: CouenneTypes.hpp:44
Couenne::NONCONVEX
@ NONCONVEX
Definition: CouenneTypes.hpp:56
Couenne::con_sign
con_sign
sign of constraint
Definition: CouenneTypes.hpp:33
Couenne::COU_EXPRQUAD
@ COU_EXPRQUAD
Definition: CouenneTypes.hpp:45
Couenne::COU_EXPRMUL
@ COU_EXPRMUL
Definition: CouenneTypes.hpp:46
Couenne::COU_EXPRESSION
@ COU_EXPRESSION
Definition: CouenneTypes.hpp:41
Couenne::t_chg_bounds::t_chg_bounds
t_chg_bounds()
Definition: CouenneTypes.hpp:75
Couenne::COU_EXPRPOW
@ COU_EXPRPOW
Definition: CouenneTypes.hpp:46
Couenne::pos
pos
position where the operator should be printed when printing the expression
Definition: CouenneTypes.hpp:30
Couenne::COU_EXPRCONST
@ COU_EXPRCONST
Definition: CouenneTypes.hpp:42
Couenne::COPY
@ COPY
Definition: CouenneTypes.hpp:20
Couenne::CONST
@ CONST
Definition: CouenneTypes.hpp:20
Couenne::NDECREAS
@ NDECREAS
Definition: CouenneTypes.hpp:59
Couenne
general include file for different compilers
Definition: CouenneAggrProbing.hpp:24
Couenne::COU_EXPRTRILINEAR
@ COU_EXPRTRILINEAR
Definition: CouenneTypes.hpp:46
Couenne::EMPTY
@ EMPTY
Definition: CouenneTypes.hpp:20
Couenne::t_chg_bounds::setLowerBits
void setLowerBits(char lower)
Definition: CouenneTypes.hpp:87
Couenne::CONV_LINEAR
@ CONV_LINEAR
Definition: CouenneTypes.hpp:56
Couenne::PRE
@ PRE
Definition: CouenneTypes.hpp:30
Couenne::COUENNE_EQ
@ COUENNE_EQ
Definition: CouenneTypes.hpp:33
Couenne::STOP_AT_AUX
@ STOP_AT_AUX
Definition: CouenneTypes.hpp:62
Couenne::t_chg_bounds::UNCHANGED
@ UNCHANGED
Definition: CouenneTypes.hpp:70
Couenne::dig_type
dig_type
type of digging when filling the dependence list
Definition: CouenneTypes.hpp:62
Couenne::TAG_AND_RECURSIVE
@ TAG_AND_RECURSIVE
Definition: CouenneTypes.hpp:62
Couenne::COUENNE_RNG
@ COUENNE_RNG
Definition: CouenneTypes.hpp:33
Couenne::t_chg_bounds::setUpper
void setUpper(ChangeStatus upper)
Definition: CouenneTypes.hpp:86
Couenne::COU_EXPRMAX
@ COU_EXPRMAX
Definition: CouenneTypes.hpp:46
Couenne::UNSET
@ UNSET
Definition: CouenneTypes.hpp:56
Couenne::COU_EXPRMIN
@ COU_EXPRMIN
Definition: CouenneTypes.hpp:46
Couenne::N_ARY
@ N_ARY
Definition: CouenneTypes.hpp:20
Couenne::CURRENT_ONLY
@ CURRENT_ONLY
Definition: CouenneTypes.hpp:37
Couenne::CONVEX
@ CONVEX
Definition: CouenneTypes.hpp:56
Couenne::NINCREAS
@ NINCREAS
Definition: CouenneTypes.hpp:59
Couenne::COU_EXPRSIN
@ COU_EXPRSIN
Definition: CouenneTypes.hpp:51
Couenne::convexity
convexity
convexity type of an expression
Definition: CouenneTypes.hpp:56
Couenne::CONSTANT
@ CONSTANT
Definition: CouenneTypes.hpp:23
Couenne::INCLIN
@ INCLIN
Definition: CouenneTypes.hpp:59
Couenne::MON_CONST
@ MON_CONST
Definition: CouenneTypes.hpp:59
Couenne::UNIFORM_GRID
@ UNIFORM_GRID
Definition: CouenneTypes.hpp:37
Couenne::monotonicity
monotonicity
monotonicity type of an expression
Definition: CouenneTypes.hpp:59
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition: CouenneTypes.hpp:100
Couenne::COU_EXPRSIGNPOW
@ COU_EXPRSIGNPOW
Definition: CouenneTypes.hpp:46
Couenne::CONV_ZERO
@ CONV_ZERO
Definition: CouenneTypes.hpp:56
Couenne::t_chg_bounds::setLower
void setLower(ChangeStatus lower)
Definition: CouenneTypes.hpp:85
Couenne::CONV_CONSTANT
@ CONV_CONSTANT
Definition: CouenneTypes.hpp:56
Couenne::COU_EXPRLBOUND
@ COU_EXPRLBOUND
Definition: CouenneTypes.hpp:42
Couenne::COU_EXPRGROUP
@ COU_EXPRGROUP
Definition: CouenneTypes.hpp:45
Couenne::conv_type
conv_type
position and number of convexification cuts added for a lower convex (upper concave) envelope
Definition: CouenneTypes.hpp:37
Couenne::AUX
@ AUX
Definition: CouenneTypes.hpp:20
Couenne::t_chg_bounds::upper
const char & upper() const
Definition: CouenneTypes.hpp:84
Couenne::COU_EXPRUBOUND
@ COU_EXPRUBOUND
Definition: CouenneTypes.hpp:42
Couenne::COU_EXPRDIV
@ COU_EXPRDIV
Definition: CouenneTypes.hpp:46
Couenne::MON_UNSET
@ MON_UNSET
Definition: CouenneTypes.hpp:59
Couenne::NONMONOTONE
@ NONMONOTONE
Definition: CouenneTypes.hpp:59
Couenne::nodeType
nodeType
type of a node in an expression tree
Definition: CouenneTypes.hpp:20
Couenne::LINEAR
@ LINEAR
Definition: CouenneTypes.hpp:23
Couenne::linearity_type
linearity_type
linearity of an expression, as returned by the method Linearity()
Definition: CouenneTypes.hpp:23
Couenne::COU_EXPRUNARY
@ COU_EXPRUNARY
Definition: CouenneTypes.hpp:48
Couenne::COU_EXPRLOG
@ COU_EXPRLOG
Definition: CouenneTypes.hpp:50
Couenne::COU_EXPRCEIL
@ COU_EXPRCEIL
Definition: CouenneTypes.hpp:52
Couenne::CONCAVE
@ CONCAVE
Definition: CouenneTypes.hpp:56
Couenne::COU_EXPRINV
@ COU_EXPRINV
Definition: CouenneTypes.hpp:50
Couenne::t_chg_bounds::CHANGED
@ CHANGED
Definition: CouenneTypes.hpp:71
Couenne::COU_EXPRCOS
@ COU_EXPRCOS
Definition: CouenneTypes.hpp:49
Couenne::COU_EXPRVAR
@ COU_EXPRVAR
Definition: CouenneTypes.hpp:42
Couenne::NONLINEAR
@ NONLINEAR
Definition: CouenneTypes.hpp:23
Couenne::t_chg_bounds::EXACT
@ EXACT
Definition: CouenneTypes.hpp:72
Couenne::COU_EXPRFLOOR
@ COU_EXPRFLOOR
Definition: CouenneTypes.hpp:51
Couenne::DECLIN
@ DECLIN
Definition: CouenneTypes.hpp:59
Couenne::ZERO
@ ZERO
Definition: CouenneTypes.hpp:23
Couenne::AFFINE
@ AFFINE
Definition: CouenneTypes.hpp:56
Couenne::NONE
@ NONE
Definition: CouenneTypes.hpp:30
Couenne::t_chg_bounds::lower
const char & lower() const
Definition: CouenneTypes.hpp:83
Couenne::ORIG_ONLY
@ ORIG_ONLY
Definition: CouenneTypes.hpp:62
Couenne::COUNT
@ COUNT
Definition: CouenneTypes.hpp:62
Couenne::t_chg_bounds::operator=
t_chg_bounds operator=(const t_chg_bounds &src)
Definition: CouenneTypes.hpp:89
Couenne::t_chg_bounds::setUpperBits
void setUpperBits(char upper)
Definition: CouenneTypes.hpp:88
Couenne::INSIDE
@ INSIDE
Definition: CouenneTypes.hpp:30
Couenne::COU_EXPRABS
@ COU_EXPRABS
Definition: CouenneTypes.hpp:49
Couenne::COU_EXPRSUB
@ COU_EXPRSUB
Definition: CouenneTypes.hpp:45